/** * xmlSecKeyUseWithDebugXmlDump: * @keyUseWith: the pointer to information about key application/user. * @output: the pointer to output FILE. * * Prints xmlSecKeyUseWith debug information to a file @output in XML format. */ void xmlSecKeyUseWithDebugXmlDump(xmlSecKeyUseWithPtr keyUseWith, FILE* output) { xmlSecAssert(keyUseWith != NULL); xmlSecAssert(output != NULL); fprintf(output, "<KeyUseWith>\n"); fprintf(output, "<Application>"); xmlSecPrintXmlString(output, keyUseWith->application); fprintf(output, "</Application>"); fprintf(output, "<Identifier>"); xmlSecPrintXmlString(output, keyUseWith->identifier); fprintf(output, "</Identifier>"); fprintf(output, "</KeyUseWith>\n"); }
/** * xmlSecKeyDebugXmlDump: * @key: the pointer to key. * @output: the pointer to output FILE. * * Prints the information about the @key to the @output in XML format. */ void xmlSecKeyDebugXmlDump(xmlSecKeyPtr key, FILE *output) { xmlSecAssert(xmlSecKeyIsValid(key)); xmlSecAssert(output != NULL); fprintf(output, "<KeyInfo>\n"); fprintf(output, "<KeyMethod>"); xmlSecPrintXmlString(output, key->value->id->dataNodeName); fprintf(output, "</KeyMethod>\n"); fprintf(output, "<KeyType>"); if((xmlSecKeyGetType(key) & xmlSecKeyDataTypeSymmetric) != 0) { fprintf(output, "Symmetric\n"); } else if((xmlSecKeyGetType(key) & xmlSecKeyDataTypePrivate) != 0) { fprintf(output, "Private\n"); } else if((xmlSecKeyGetType(key) & xmlSecKeyDataTypePublic) != 0) { fprintf(output, "Public\n"); } else { fprintf(output, "Unknown\n"); } fprintf(output, "</KeyType>\n"); fprintf(output, "<KeyName>"); xmlSecPrintXmlString(output, key->name); fprintf(output, "</KeyName>\n"); if(key->notValidBefore < key->notValidAfter) { fprintf(output, "<KeyValidity notValidBefore=\"%ld\" notValidAfter=\"%ld\"/>\n", (unsigned long)key->notValidBefore, (unsigned long)key->notValidAfter); } if(key->value != NULL) { xmlSecKeyDataDebugXmlDump(key->value, output); } if(key->dataList != NULL) { xmlSecPtrListDebugXmlDump(key->dataList, output); } fprintf(output, "</KeyInfo>\n"); }
/** * xmlSecKeyReqDebugXmlDump: * @keyReq: the pointer to key requirements object. * @output: the pointer to output FILE. * * Prints debug information about @keyReq into @output in XML format. */ void xmlSecKeyReqDebugXmlDump(xmlSecKeyReqPtr keyReq, FILE* output) { xmlSecAssert(keyReq != NULL); xmlSecAssert(output != NULL); fprintf(output, "<KeyReq>\n"); fprintf(output, "<KeyId>"); xmlSecPrintXmlString(output, xmlSecKeyDataKlassGetName(keyReq->keyId)); fprintf(output, "</KeyId>\n"); fprintf(output, "<KeyType>0x%08x</KeyType>\n", keyReq->keyType); fprintf(output, "<KeyUsage>0x%08x</KeyUsage>\n", keyReq->keyUsage); fprintf(output, "<KeyBitsSize>%d</KeyBitsSize>\n", keyReq->keyBitsSize); xmlSecPtrListDebugXmlDump(&(keyReq->keyUseWithList), output); fprintf(output, "</KeyReq>\n"); }
/** * xmlSecKeyDataIdListDebugXmlDump: * @list: the pointer to key data ids list. * @output: the pointer to output FILE. * * Prints binary key data debug information to @output in XML format. */ void xmlSecKeyDataIdListDebugXmlDump(xmlSecPtrListPtr list, FILE* output) { xmlSecKeyDataId dataId; xmlSecSize i, size; xmlSecAssert(xmlSecPtrListCheckId(list, xmlSecKeyDataIdListId)); xmlSecAssert(output != NULL); fprintf(output, "<KeyDataIdsList>\n"); size = xmlSecPtrListGetSize(list); for(i = 0; i < size; ++i) { dataId = (xmlSecKeyDataId)xmlSecPtrListGetItem(list, i); xmlSecAssert(dataId != NULL); xmlSecAssert(dataId->name != NULL); fprintf(output, "<DataId name=\""); xmlSecPrintXmlString(output, dataId->name); fprintf(output, "\"/>"); } fprintf(output, "</KeyDataIdsList>\n"); }
/** * xmlSecEncCtxDebugXmlDump: * @encCtx: the pointer to <enc:EncryptedData/> processing context. * @output: the pointer to output FILE. * * Prints the debug information about @encCtx to @output in XML format. */ void xmlSecEncCtxDebugXmlDump(xmlSecEncCtxPtr encCtx, FILE* output) { xmlSecAssert(encCtx != NULL); xmlSecAssert(output != NULL); switch(encCtx->mode) { case xmlEncCtxModeEncryptedData: if(encCtx->operation == xmlSecTransformOperationEncrypt) { fprintf(output, "<DataEncryptionContext "); } else { fprintf(output, "<DataDecryptionContext "); } break; case xmlEncCtxModeEncryptedKey: if(encCtx->operation == xmlSecTransformOperationEncrypt) { fprintf(output, "<KeyEncryptionContext "); } else { fprintf(output, "<KeyDecryptionContext "); } break; } fprintf(output, "status=\"%s\" >\n", (encCtx->resultReplaced) ? "replaced" : "not-replaced" ); fprintf(output, "<Flags>%08x</Flags>\n", encCtx->flags); fprintf(output, "<Flags2>%08x</Flags2>\n", encCtx->flags2); fprintf(output, "<Id>"); xmlSecPrintXmlString(output, encCtx->id); fprintf(output, "</Id>"); fprintf(output, "<Type>"); xmlSecPrintXmlString(output, encCtx->type); fprintf(output, "</Type>"); fprintf(output, "<MimeType>"); xmlSecPrintXmlString(output, encCtx->mimeType); fprintf(output, "</MimeType>"); fprintf(output, "<Encoding>"); xmlSecPrintXmlString(output, encCtx->encoding); fprintf(output, "</Encoding>"); fprintf(output, "<Recipient>"); xmlSecPrintXmlString(output, encCtx->recipient); fprintf(output, "</Recipient>"); fprintf(output, "<CarriedKeyName>"); xmlSecPrintXmlString(output, encCtx->carriedKeyName); fprintf(output, "</CarriedKeyName>"); fprintf(output, "<KeyInfoReadCtx>\n"); xmlSecKeyInfoCtxDebugXmlDump(&(encCtx->keyInfoReadCtx), output); fprintf(output, "</KeyInfoReadCtx>\n"); fprintf(output, "<KeyInfoWriteCtx>\n"); xmlSecKeyInfoCtxDebugXmlDump(&(encCtx->keyInfoWriteCtx), output); fprintf(output, "</KeyInfoWriteCtx>\n"); fprintf(output, "<EncryptionTransformCtx>\n"); xmlSecTransformCtxDebugXmlDump(&(encCtx->transformCtx), output); fprintf(output, "</EncryptionTransformCtx>\n"); if(encCtx->encMethod != NULL) { fprintf(output, "<EncryptionMethod>\n"); xmlSecTransformDebugXmlDump(encCtx->encMethod, output); fprintf(output, "</EncryptionMethod>\n"); } if(encCtx->encKey != NULL) { fprintf(output, "<EncryptionKey>\n"); xmlSecKeyDebugXmlDump(encCtx->encKey, output); fprintf(output, "</EncryptionKey>\n"); } if((encCtx->result != NULL) && (xmlSecBufferGetData(encCtx->result) != NULL) && (encCtx->resultBase64Encoded != 0)) { fprintf(output, "<Result>"); fwrite(xmlSecBufferGetData(encCtx->result), xmlSecBufferGetSize(encCtx->result), 1, output); fprintf(output, "</Result>\n"); } switch(encCtx->mode) { case xmlEncCtxModeEncryptedData: if(encCtx->operation == xmlSecTransformOperationEncrypt) { fprintf(output, "</DataEncryptionContext>\n"); } else { fprintf(output, "</DataDecryptionContext>\n"); } break; case xmlEncCtxModeEncryptedKey: if(encCtx->operation == xmlSecTransformOperationEncrypt) { fprintf(output, "</KeyEncryptionContext>\n"); } else { fprintf(output, "</KeyDecryptionContext>\n"); } break; } }