summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2002-09-06 17:12:54 +0000
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2002-09-06 17:12:54 +0000
commitd7abdc0ddfb833cd052df4c9a70ec75396fc2b09 (patch)
treebcc7cdad6beb77345f937be661c4f66a7ce19d3e
parent36acad78b70ed72149b74a678be5fbc1af4fef12 (diff)
downloadgnutls-d7abdc0ddfb833cd052df4c9a70ec75396fc2b09.tar.gz
added versioning in the XML output of certificate functions.
-rw-r--r--NEWS3
-rw-r--r--doc/tex/pgpcert.xml.tex7
-rw-r--r--doc/tex/x509cert.xml.tex7
-rw-r--r--lib/x509_xml.c8
-rw-r--r--libextra/gnutls_openpgp.c13
-rw-r--r--src/common.c29
-rwxr-xr-xsrc/gnutls-http-serv3
7 files changed, 60 insertions, 10 deletions
diff --git a/NEWS b/NEWS
index d1664ce59d..833ea8b732 100644
--- a/NEWS
+++ b/NEWS
@@ -1,10 +1,11 @@
-Version 0.5.6
+Version 0.5.6 (6/09/2002)
- Corrected bugs in SRP implementation, which prevented gnutls
to interoperate with other implementations. (interoperability testing
was done by David Taylor)
- Corrected bug in cert_type extension.
- Corrected extension type checks which used an 8 bit extension size,
instead of 16 bits.
+- Added versioning in the XML output of certificate functions.
- Removed the X.509 test suite.
Version 0.5.5 (3/09/2002)
diff --git a/doc/tex/pgpcert.xml.tex b/doc/tex/pgpcert.xml.tex
index fe66e35e67..1e11aeb4fe 100644
--- a/doc/tex/pgpcert.xml.tex
+++ b/doc/tex/pgpcert.xml.tex
@@ -1,7 +1,9 @@
\begin{verbatim}
<?xml version="1.0"?>
-<OPENPGPKEY>
+
+<gnutls:openpgp:key version="1.0">
+ <OPENPGPKEY>
<MAINKEY>
<KEYID>BD572CDCCCC07C3</KEYID>
<FINGERPRINT>BE615E88D6CFF27225B8A2E7BD572CDCCCC07C35</FINGERPRINT>
@@ -51,6 +53,7 @@
<CREATED>1011533167</CREATED>
<KEYID>BD572CDCCCC07C3</KEYID>
</SIGNATURE>
-</OPENPGPKEY>
+ </OPENPGPKEY>
+</gnutls:openpgp:key>
\end{verbatim}
diff --git a/doc/tex/x509cert.xml.tex b/doc/tex/x509cert.xml.tex
index d66aa4032e..0451be10c5 100644
--- a/doc/tex/x509cert.xml.tex
+++ b/doc/tex/x509cert.xml.tex
@@ -1,7 +1,9 @@
\begin{verbatim}
<?xml version="1.0" encoding="UTF-8"?>
-<certificate type="SEQUENCE">
+
+<gnutls:certificate version="1.0">
+ <certificate type="SEQUENCE">
<tbsCertificate type="SEQUENCE">
<version type="INTEGER" encoding="HEX">02</version>
<serialNumber type="INTEGER" encoding="HEX">01</serialNumber>
@@ -182,6 +184,7 @@
</parameters>
</signatureAlgorithm>
<signature type="BIT STRING" encoding="HEX" length="1024">B73945273AF2A395EC54BF5DC669D953885A9D811A3B92909D24792D36A44EC27E1C463AF8738BEFD29B311CCE8C6D9661BEC30911DAABB39B8813382B32D2E259581EBCD26C495C083984763966FF35D1DEFE432891E610C85072578DA7423244A8F5997B41A1F44E61F4F22C94375775055A5E72F25D5E4557467A91BD4251</signature>
-</certificate>
+ </certificate>
+</gnutls:certificate>
\end{verbatim}
diff --git a/lib/x509_xml.c b/lib/x509_xml.c
index a8e1287664..2a051f49dd 100644
--- a/lib/x509_xml.c
+++ b/lib/x509_xml.c
@@ -173,8 +173,10 @@ static int normalize_name( ASN1_TYPE p, char* output, int output_size)
return 0;
}
-#define XML_HEADER "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#define XML_HEADER "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n" \
+ "<gnutls:x509:certificate version=\"1.0\">\n"
+#define XML_FOOTER "</gnutls:x509:certificate>\n"
static int
_gnutls_asn1_get_structure_xml(ASN1_TYPE structure, const char *name,
@@ -195,6 +197,7 @@ _gnutls_asn1_get_structure_xml(ASN1_TYPE structure, const char *name,
_gnutls_string_init( &str, malloc, realloc, free);
STR_APPEND(XML_HEADER);
+ indent = 1;
root = _asn1_find_node(structure, name);
@@ -551,8 +554,9 @@ _gnutls_asn1_get_structure_xml(ASN1_TYPE structure, const char *name,
}
}
+ STR_APPEND(XML_FOOTER);
APPEND( "\n\0", 2);
-
+
*res = _gnutls_string2datum( &str);
return 0;
diff --git a/libextra/gnutls_openpgp.c b/libextra/gnutls_openpgp.c
index 4544e2279b..84c769ab3e 100644
--- a/libextra/gnutls_openpgp.c
+++ b/libextra/gnutls_openpgp.c
@@ -1851,8 +1851,12 @@ gnutls_openpgp_key_to_xml( const gnutls_datum *cert,
s = "<?xml version=\"1.0\"?>\n\n";
rc = _gnutls_string_append_str( &string_xml_key, s );
if ( rc < 0 ) return rc;
+
+ s = "<gnutls:openpgp:key version=\"1.0\">\n";
+ rc = _gnutls_string_append_str( &string_xml_key, s );
+ if ( rc < 0 ) return rc;
- s = "<OPENPGPKEY>\n";
+ s = " <OPENPGPKEY>\n";
rc = _gnutls_string_append_str( &string_xml_key, s );
if ( rc < 0 ) return rc;
@@ -1885,7 +1889,12 @@ gnutls_openpgp_key_to_xml( const gnutls_datum *cert,
break;
}
}
- s = "</OPENPGPKEY>\n";
+ s = " </OPENPGPKEY>\n";
+ rc = _gnutls_string_append_str( &string_xml_key, s );
+ if ( rc < 0 ) return rc;
+
+
+ s = "</gnutls:openpgp:key>\n";
rc = _gnutls_string_append_str( &string_xml_key, s );
if ( rc < 0 ) return rc;
diff --git a/src/common.c b/src/common.c
index f6ef4c5179..44360d5d48 100644
--- a/src/common.c
+++ b/src/common.c
@@ -1,10 +1,13 @@
#include <stdio.h>
+#include <stdlib.h>
#include <gnutls/gnutls.h>
#include <gnutls/extra.h>
#include <time.h>
void print_cert_info(gnutls_session session);
+#define XML
+
#define PRINTX(x,y) if (y[0]!=0) printf(" # %s %s\n", x, y)
#define PRINT_DN(X) PRINTX( "CN:", X.common_name); \
PRINTX( "OU:", X.organizational_unit_name); \
@@ -49,6 +52,19 @@ void print_x509_info(gnutls_session session)
if (cert_list_size <= 0)
return;
+#ifdef XML
+ {
+ gnutls_datum res;
+
+ gnutls_x509_certificate_to_xml( &cert_list[0], &res, 0);
+ printf( res.data);
+
+ free(res.data);
+
+ return;
+ }
+#endif
+
printf(" - Certificate info:\n");
printf(" # Certificate is valid since: %s", my_ctime( &activet));
@@ -125,6 +141,19 @@ void print_openpgp_info(gnutls_session session)
if (cert_list_size > 0) {
int algo, bits;
+#ifdef XML
+ {
+ gnutls_datum res;
+
+ gnutls_openpgp_key_to_xml( &cert_list[0], &res, 0);
+ printf( res.data);
+
+ free(res.data);
+
+ return;
+ }
+#endif
+
printf(" # Key was created at: %s", my_ctime( &activet));
printf(" # Key expires: ");
if (expiret != 0)
diff --git a/src/gnutls-http-serv b/src/gnutls-http-serv
index 78ab4925ae..396e3e5599 100755
--- a/src/gnutls-http-serv
+++ b/src/gnutls-http-serv
@@ -1,5 +1,6 @@
#! /bin/sh
./gnutls-serv --http --x509certfile x509/cert.pem --x509keyfile x509/key.pem --x509cafile x509/ca.pem \
- --srppasswd srp/tpasswd --srppasswdconf srp/tpasswd.conf $*
+ --srppasswd srp/tpasswd --srppasswdconf srp/tpasswd.conf \
+ --pgpkeyfile openpgp/sec.asc --pgpcertfile openpgp/pub.asc $*