diff options
author | Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 2018-09-18 03:05:51 +0300 |
---|---|---|
committer | Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 2018-09-18 16:24:21 +0300 |
commit | 7339f222c9ea52cd6c1177f7d749cd0dba278203 (patch) | |
tree | 5589384e5b97b716539e3dc97062a956bc68c417 /src | |
parent | 4d8c98b2493d2880c536beb71984e487a71143ee (diff) | |
download | gnutls-7339f222c9ea52cd6c1177f7d749cd0dba278203.tar.gz |
certtool: 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 'src')
-rw-r--r-- | src/certtool-common.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/certtool-common.c b/src/certtool-common.c index e44ed5d5aa..acd314a0ac 100644 --- a/src/certtool-common.c +++ b/src/certtool-common.c @@ -913,6 +913,18 @@ print_ecc_pkey(FILE * outfile, gnutls_ecc_curve_t curve, } } +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; + } +} + void print_gost_pkey(FILE * outfile, gnutls_ecc_curve_t curve, gnutls_digest_algorithm_t digest, gnutls_gost_paramset_t paramset, @@ -941,9 +953,12 @@ print_gost_pkey(FILE * outfile, gnutls_ecc_curve_t curve, gnutls_gost_paramset_get_name(paramset)); if (k) { + reverse_datum(k); print_head(outfile, "private key", k->size, cprint); print_hex_datum(outfile, k, cprint); } + reverse_datum(x); + reverse_datum(y); print_head(outfile, "x", x->size, cprint); print_hex_datum(outfile, x, cprint); print_head(outfile, "y", y->size, cprint); |