diff options
author | jsing <> | 2018-06-10 14:39:49 +0000 |
---|---|---|
committer | jsing <> | 2018-06-10 14:39:49 +0000 |
commit | ac5223be7f036d3e15076a46df72cc522bda4fb0 (patch) | |
tree | 1b6602c70d5af4fec07a299bf2db61557c8d6455 | |
parent | f364185390ebfcad9c176cfd34bb3ef61c9ef2f0 (diff) | |
download | openbsd-ac5223be7f036d3e15076a46df72cc522bda4fb0.tar.gz openbsd-ac5223be7f036d3e15076a46df72cc522bda4fb0.tar.bz2 openbsd-ac5223be7f036d3e15076a46df72cc522bda4fb0.zip |
Remove a handrolled GOST_le2bn().
From Dmitry Eremin-Solenikov <dbaryshkov at gmail dot com>.
-rw-r--r-- | src/lib/libcrypto/gost/gostr341001_ameth.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/lib/libcrypto/gost/gostr341001_ameth.c b/src/lib/libcrypto/gost/gostr341001_ameth.c index ed0b949d9d..086e371057 100644 --- a/src/lib/libcrypto/gost/gostr341001_ameth.c +++ b/src/lib/libcrypto/gost/gostr341001_ameth.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: gostr341001_ameth.c,v 1.12 2018/05/01 19:01:28 tb Exp $ */ | 1 | /* $OpenBSD: gostr341001_ameth.c,v 1.13 2018/06/10 14:39:49 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> |
4 | * Copyright (c) 2005-2006 Cryptocom LTD | 4 | * Copyright (c) 2005-2006 Cryptocom LTD |
@@ -421,21 +421,17 @@ priv_decode_gost01(EVP_PKEY *pk, PKCS8_PRIV_KEY_INFO *p8inf) | |||
421 | p = pkey_buf; | 421 | p = pkey_buf; |
422 | if (V_ASN1_OCTET_STRING == *p) { | 422 | if (V_ASN1_OCTET_STRING == *p) { |
423 | /* New format - Little endian octet string */ | 423 | /* New format - Little endian octet string */ |
424 | unsigned char rev_buf[32]; | ||
425 | int i; | ||
426 | ASN1_OCTET_STRING *s = | 424 | ASN1_OCTET_STRING *s = |
427 | d2i_ASN1_OCTET_STRING(NULL, &p, priv_len); | 425 | d2i_ASN1_OCTET_STRING(NULL, &p, priv_len); |
428 | 426 | ||
429 | if (s == NULL || s->length != 32) { | 427 | if (s == NULL) { |
430 | GOSTerror(EVP_R_DECODE_ERROR); | 428 | GOSTerror(EVP_R_DECODE_ERROR); |
431 | ASN1_STRING_free(s); | 429 | ASN1_STRING_free(s); |
432 | return 0; | 430 | return 0; |
433 | } | 431 | } |
434 | for (i = 0; i < 32; i++) { | 432 | |
435 | rev_buf[31 - i] = s->data[i]; | 433 | pk_num = GOST_le2bn(s->data, s->length, NULL); |
436 | } | ||
437 | ASN1_STRING_free(s); | 434 | ASN1_STRING_free(s); |
438 | pk_num = BN_bin2bn(rev_buf, 32, NULL); | ||
439 | } else { | 435 | } else { |
440 | priv_key = d2i_ASN1_INTEGER(NULL, &p, priv_len); | 436 | priv_key = d2i_ASN1_INTEGER(NULL, &p, priv_len); |
441 | if (priv_key == NULL) | 437 | if (priv_key == NULL) |