summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2018-06-10 14:39:49 +0000
committerjsing <>2018-06-10 14:39:49 +0000
commitac5223be7f036d3e15076a46df72cc522bda4fb0 (patch)
tree1b6602c70d5af4fec07a299bf2db61557c8d6455
parentf364185390ebfcad9c176cfd34bb3ef61c9ef2f0 (diff)
downloadopenbsd-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.c12
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)