Lines Matching defs:bn
80 bn_bn2binpad_internal(const BIGNUM *bn, uint8_t *out, int out_len,
88 n = BN_num_bytes(bn);
95 if (bn->dmax == 0) {
106 mask = crypto_ct_lt_mask(j, bn->top);
107 w = bn->d[j++ % bn->dmax];
126 BN_bn2bin(const BIGNUM *bn, unsigned char *to)
128 return bn_bn2binpad_internal(bn, to, -1, 0);
133 BN_bn2binpad(const BIGNUM *bn, unsigned char *to, int to_len)
138 return bn_bn2binpad_internal(bn, to, to_len, 0);
145 BIGNUM *bn = NULL;
150 if ((bn = *bnp) == NULL)
151 bn = BN_new();
152 if (bn == NULL)
154 if (!bn_expand_bytes(bn, CBS_len(cbs)))
175 bn->d[i++] = w;
180 bn->neg = 0;
181 bn->top = i;
183 bn_correct_top(bn);
185 *bnp = bn;
191 BN_free(bn);
197 BN_bin2bn(const unsigned char *d, int len, BIGNUM *bn)
206 if (!bn_bin2bn_cbs(&bn, &cbs, 0))
209 return bn;
214 BN_bn2lebinpad(const BIGNUM *bn, unsigned char *to, int to_len)
219 return bn_bn2binpad_internal(bn, to, to_len, 1);
224 BN_lebin2bn(const unsigned char *d, int len, BIGNUM *bn)
233 if (!bn_bin2bn_cbs(&bn, &cbs, 1))
236 return bn;
294 BN_bn2dec(const BIGNUM *bn)
311 if ((tmp = BN_dup(bn)) == NULL)
337 if (BN_is_negative(bn)) {
376 BIGNUM *bn = NULL;
407 if ((bn = *bnp) == NULL)
408 bn = BN_new();
409 if (bn == NULL)
411 if (!bn_expand_bits(bn, digits * 4))
432 if (!BN_mul_word(bn, BN_DEC_CONV))
434 if (!BN_add_word(bn, w))
442 bn_correct_top(bn);
444 BN_set_negative(bn, neg);
446 *bnp = bn;
452 BN_free(bn);
478 bn_bn2hex_internal(const BIGNUM *bn, int include_sign, int nibbles_only,
497 if (BN_is_negative(bn) && include_sign) {
501 if (BN_is_zero(bn)) {
505 for (i = bn->top - 1; i >= 0; i--) {
506 w = bn->d[i];
545 bn_bn2hex_nosign(const BIGNUM *bn, char **out, size_t *out_len)
547 return bn_bn2hex_internal(bn, 0, 0, out, out_len);
551 bn_bn2hex_nibbles(const BIGNUM *bn, char **out, size_t *out_len)
553 return bn_bn2hex_internal(bn, 1, 1, out, out_len);
557 BN_bn2hex(const BIGNUM *bn)
562 if (!bn_bn2hex_internal(bn, 1, 0, &s, &s_len))
573 BIGNUM *bn = NULL;
604 if ((bn = *bnp) == NULL)
605 bn = BN_new();
606 if (bn == NULL)
608 if (!bn_expand_bits(bn, digits * 4))
637 bn->d[i++] = w;
642 bn->top = i;
643 bn_correct_top(bn);
645 BN_set_negative(bn, neg);
647 *bnp = bn;
653 BN_free(bn);
679 BN_bn2mpi(const BIGNUM *bn, unsigned char *d)
687 bits = BN_num_bits(bn);
702 if (BN_bn2binpad(bn, out_bin, out_bin_len) != out_bin_len)
707 if (bn->neg)
722 BIGNUM *bn = bn_in;
747 if (!bn_bin2bn_cbs(&bn, &cbs, 0))
751 BN_clear_bit(bn, BN_num_bits(bn) - 1);
753 BN_set_negative(bn, neg);
755 return bn;