/** * 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"); }
PyObject *xmlsec_KeyDataDebugXmlDump(PyObject *self, PyObject *args) { PyObject *data_obj, *output_obj; xmlSecKeyDataPtr data; FILE *output; if (CheckArgs(args, "OF:keyDataDebugXmlDump")) { if (!PyArg_ParseTuple(args, "OO:keyDataDebugXmlDump", &data_obj, &output_obj)) return NULL; } else return NULL; data = xmlSecKeyDataPtr_get(data_obj); output = PythonFile_get(output_obj); xmlSecKeyDataDebugXmlDump(data, output); Py_INCREF(Py_None); return (Py_None); }