X-Git-Url: https://wagner.pp.ru/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gost_asn1.c;h=0412d2c7c13cdd51325506d2961f30eaac37f4c4;hb=02f99b2e3b46f4ff44fd5420487551d5a447c2ad;hp=11686339b7a5c8cb12a7481e54bbab579ef02086;hpb=c98ba9d03213d0c63d6874539d59f7b55fbc3fae;p=openssl-gost%2Fengine.git diff --git a/gost_asn1.c b/gost_asn1.c index 1168633..0412d2c 100644 --- a/gost_asn1.c +++ b/gost_asn1.c @@ -54,3 +54,19 @@ ASN1_NDEF_SEQUENCE(GOST_CLIENT_KEY_EXCHANGE_PARAMS) = { /* FIXME incomplete */ ASN1_NDEF_SEQUENCE_END(GOST_CLIENT_KEY_EXCHANGE_PARAMS) IMPLEMENT_ASN1_FUNCTIONS(GOST_CLIENT_KEY_EXCHANGE_PARAMS) + +/* Convert byte buffer to bignum, skipping leading zeros*/ +BIGNUM *getbnfrombuf(const unsigned char *buf, size_t len) +{ + BIGNUM *b; + + while (*buf == 0 && len > 0) { + buf++; + len--; + } + if (len) + return BN_bin2bn(buf, len, NULL); + b = BN_new(); + BN_zero(b); + return b; +}