+ if (!M_ASN1_OCTET_STRING_set(ret->a, &char_buf, 1))
+ OPENSSL_ECDSA_ABORT(ERR_R_ASN1_LIB)
+ }
+ else
+ {
+ if ((len1 = BN_bn2bin(tmp1, buffer)) == 0) goto err;
+ if (!M_ASN1_OCTET_STRING_set(ret->a, buffer, len1))
+ OPENSSL_ECDSA_ABORT(ERR_R_ASN1_LIB)
+ }
+ if (len2 == 0) /* => b == 0 */
+ {
+ if (!M_ASN1_OCTET_STRING_set(ret->a, &char_buf, 1))
+ OPENSSL_ECDSA_ABORT(ERR_R_ASN1_LIB)
+ }
+ else
+ {
+ if ((len2 = BN_bn2bin(tmp2, buffer)) == 0) goto err;
+ if (!M_ASN1_OCTET_STRING_set(ret->b, buffer, len2))
+ OPENSSL_ECDSA_ABORT(ERR_R_ASN1_LIB)