| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/bn/bn_mpi.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||
| 2 | - | |||||||||||||
| 3 | - | |||||||||||||
| 4 | int | - | ||||||||||||
| 5 | BN_bn2mpi(const BIGNUM *a, unsigned char *d) | - | ||||||||||||
| 6 | { | - | ||||||||||||
| 7 | int bits; | - | ||||||||||||
| 8 | int num = 0; | - | ||||||||||||
| 9 | int ext = 0; | - | ||||||||||||
| 10 | long l; | - | ||||||||||||
| 11 | - | |||||||||||||
| 12 | bits = BN_num_bits(a); | - | ||||||||||||
| 13 | num = (bits + 7) / 8; | - | ||||||||||||
| 14 | if (bits > 0
| 0 | ||||||||||||
| 15 | ext = ((bits & 0x07) == 0); | - | ||||||||||||
| 16 | } never executed: end of block | 0 | ||||||||||||
| 17 | if (d ==
| 0 | ||||||||||||
| 18 | ((void *)0)
| 0 | ||||||||||||
| 19 | ) | - | ||||||||||||
| 20 | return never executed: (num + 4 + ext);return (num + 4 + ext);never executed: return (num + 4 + ext); | 0 | ||||||||||||
| 21 | - | |||||||||||||
| 22 | l = num + ext; | - | ||||||||||||
| 23 | d[0] = (unsigned char)(l >> 24) & 0xff; | - | ||||||||||||
| 24 | d[1] = (unsigned char)(l >> 16) & 0xff; | - | ||||||||||||
| 25 | d[2] = (unsigned char)(l >> 8) & 0xff; | - | ||||||||||||
| 26 | d[3] = (unsigned char)(l) & 0xff; | - | ||||||||||||
| 27 | if (ext
| 0 | ||||||||||||
| 28 | d[4] = 0; never executed: d[4] = 0; | 0 | ||||||||||||
| 29 | num = BN_bn2bin(a, &(d[4 + ext])); | - | ||||||||||||
| 30 | if (a->neg
| 0 | ||||||||||||
| 31 | d[4] |= 0x80; never executed: d[4] |= 0x80; | 0 | ||||||||||||
| 32 | return never executed: (num + 4 + ext);return (num + 4 + ext);never executed: return (num + 4 + ext); | 0 | ||||||||||||
| 33 | } | - | ||||||||||||
| 34 | - | |||||||||||||
| 35 | BIGNUM * | - | ||||||||||||
| 36 | BN_mpi2bn(const unsigned char *d, int n, BIGNUM *a) | - | ||||||||||||
| 37 | { | - | ||||||||||||
| 38 | long len; | - | ||||||||||||
| 39 | int neg = 0; | - | ||||||||||||
| 40 | - | |||||||||||||
| 41 | if (n < 4
| 0 | ||||||||||||
| 42 | ERR_put_error(3,(0xfff),(106),__FILE__,101); | - | ||||||||||||
| 43 | return never executed: (return ( ((void *)0) );never executed: return ( ((void *)0) ); | 0 | ||||||||||||
| 44 | ((void *)0) never executed: return ( ((void *)0) ); | 0 | ||||||||||||
| 45 | ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||
| 46 | } | - | ||||||||||||
| 47 | len = ((long)d[0] << 24) | ((long)d[1] << 16) | ((int)d[2] << 8) | | - | ||||||||||||
| 48 | (int)d[3]; | - | ||||||||||||
| 49 | if ((
| 0 | ||||||||||||
| 50 | ERR_put_error(3,(0xfff),(104),__FILE__,107); | - | ||||||||||||
| 51 | return never executed: (return ( ((void *)0) );never executed: return ( ((void *)0) ); | 0 | ||||||||||||
| 52 | ((void *)0) never executed: return ( ((void *)0) ); | 0 | ||||||||||||
| 53 | ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||
| 54 | } | - | ||||||||||||
| 55 | - | |||||||||||||
| 56 | if (a ==
| 0 | ||||||||||||
| 57 | ((void *)0)
| 0 | ||||||||||||
| 58 | ) | - | ||||||||||||
| 59 | a = BN_new(); never executed: a = BN_new(); | 0 | ||||||||||||
| 60 | if (a ==
| 0 | ||||||||||||
| 61 | ((void *)0)
| 0 | ||||||||||||
| 62 | ) | - | ||||||||||||
| 63 | return never executed: (return ( ((void *)0) );never executed: return ( ((void *)0) ); | 0 | ||||||||||||
| 64 | ((void *)0) never executed: return ( ((void *)0) ); | 0 | ||||||||||||
| 65 | ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||
| 66 | - | |||||||||||||
| 67 | if (len == 0
| 0 | ||||||||||||
| 68 | a->neg = 0; | - | ||||||||||||
| 69 | a->top = 0; | - | ||||||||||||
| 70 | return never executed: (a);return (a);never executed: return (a); | 0 | ||||||||||||
| 71 | } | - | ||||||||||||
| 72 | d += 4; | - | ||||||||||||
| 73 | if ((*
| 0 | ||||||||||||
| 74 | neg = 1; never executed: neg = 1; | 0 | ||||||||||||
| 75 | if (BN_bin2bn(d, (int)len, a) ==
| 0 | ||||||||||||
| 76 | ((void *)0)
| 0 | ||||||||||||
| 77 | ) | - | ||||||||||||
| 78 | return never executed: (return ( ((void *)0) );never executed: return ( ((void *)0) ); | 0 | ||||||||||||
| 79 | ((void *)0) never executed: return ( ((void *)0) ); | 0 | ||||||||||||
| 80 | ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||
| 81 | a->neg = neg; | - | ||||||||||||
| 82 | if (neg
| 0 | ||||||||||||
| 83 | BN_clear_bit(a, BN_num_bits(a) - 1); | - | ||||||||||||
| 84 | } never executed: end of block | 0 | ||||||||||||
| 85 | ; | - | ||||||||||||
| 86 | return never executed: (a);return (a);never executed: return (a); | 0 | ||||||||||||
| 87 | } | - | ||||||||||||
| Switch to Source code | Preprocessed file |