summaryrefslogtreecommitdiff
path: root/lib/x509
diff options
context:
space:
mode:
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>2018-09-18 03:05:51 +0300
committerDmitry Eremin-Solenikov <dbaryshkov@gmail.com>2018-09-18 16:24:21 +0300
commit4d8c98b2493d2880c536beb71984e487a71143ee (patch)
treea7caea7f10e2c1863f553a6e022d58c6ea53900b /lib/x509
parent13c19bdf1726da4e7358c5db648c7d094b4c6179 (diff)
downloadgnutls-4d8c98b2493d2880c536beb71984e487a71143ee.tar.gz
x509: print_pubkey: print GOST public key with MSB first
OpenSSL and other libraries print MSB first, when printing GOST public keys. Let's return to this convention. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Diffstat (limited to 'lib/x509')
-rw-r--r--lib/x509/output.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/x509/output.c b/lib/x509/output.c
index 4fc37d6253..9c9d30290f 100644
--- a/lib/x509/output.c
+++ b/lib/x509/output.c
@@ -1203,6 +1203,18 @@ print_extensions(gnutls_buffer_st * str, const char *prefix, int type,
}
}
+static void reverse_datum(gnutls_datum_t *d)
+{
+ unsigned int i;
+ unsigned char c;
+
+ for (i = 0; i < d->size / 2; i++) {
+ c = d->data[i];
+ d->data[i] = d->data[d->size - i - 1];
+ d->data[d->size - i - 1] = c;
+ }
+}
+
static void
print_pubkey(gnutls_buffer_st * str, const char *key_name,
gnutls_pubkey_t pubkey, gnutls_x509_spki_st *spki,
@@ -1428,6 +1440,8 @@ print_pubkey(gnutls_buffer_st * str, const char *key_name,
gnutls_digest_get_name(digest));
addf(str, _("\t\tParamSet: %s\n"),
gnutls_gost_paramset_get_name(param));
+ reverse_datum(&x);
+ reverse_datum(&y);
if (format ==
GNUTLS_CRT_PRINT_FULL_NUMBERS) {
adds(str, _("\t\tX: "));