Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/rsa/rsa_saos.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | - | |||||||||||||
3 | int | - | ||||||||||||
4 | RSA_sign_ASN1_OCTET_STRING(int type, const unsigned char *m, unsigned int m_len, | - | ||||||||||||
5 | unsigned char *sigret, unsigned int *siglen, RSA *rsa) | - | ||||||||||||
6 | { | - | ||||||||||||
7 | ASN1_OCTET_STRING sig; | - | ||||||||||||
8 | int i, j, ret = 1; | - | ||||||||||||
9 | unsigned char *p, *s; | - | ||||||||||||
10 | - | |||||||||||||
11 | sig.type = 4; | - | ||||||||||||
12 | sig.length = m_len; | - | ||||||||||||
13 | sig.data = (unsigned char *)m; | - | ||||||||||||
14 | - | |||||||||||||
15 | i = i2d_ASN1_OCTET_STRING(&sig, | - | ||||||||||||
16 | ((void *)0) | - | ||||||||||||
17 | ); | - | ||||||||||||
18 | j = RSA_size(rsa); | - | ||||||||||||
19 | if (i > (j - 11)
| 0 | ||||||||||||
20 | ERR_put_error(4,(0xfff),(112),__FILE__,83); | - | ||||||||||||
21 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
22 | } | - | ||||||||||||
23 | s = malloc(j + 1); | - | ||||||||||||
24 | if (s ==
| 0 | ||||||||||||
25 | ((void *)0)
| 0 | ||||||||||||
26 | ) { | - | ||||||||||||
27 | ERR_put_error(4,(0xfff),((1|64)),__FILE__,88); | - | ||||||||||||
28 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
29 | } | - | ||||||||||||
30 | p = s; | - | ||||||||||||
31 | i2d_ASN1_OCTET_STRING(&sig, &p); | - | ||||||||||||
32 | i = RSA_private_encrypt(i, s, sigret, rsa, 1); | - | ||||||||||||
33 | if (i <= 0
| 0 | ||||||||||||
34 | ret = 0; never executed: ret = 0; | 0 | ||||||||||||
35 | else | - | ||||||||||||
36 | * never executed: siglen = i;*siglen = i; never executed: *siglen = i; | 0 | ||||||||||||
37 | - | |||||||||||||
38 | freezero(s, (unsigned int)j + 1); | - | ||||||||||||
39 | return never executed: ret;return ret; never executed: return ret; | 0 | ||||||||||||
40 | } | - | ||||||||||||
41 | - | |||||||||||||
42 | int | - | ||||||||||||
43 | RSA_verify_ASN1_OCTET_STRING(int dtype, const unsigned char *m, | - | ||||||||||||
44 | unsigned int m_len, unsigned char *sigbuf, unsigned int siglen, RSA *rsa) | - | ||||||||||||
45 | { | - | ||||||||||||
46 | int i, ret = 0; | - | ||||||||||||
47 | unsigned char *s; | - | ||||||||||||
48 | const unsigned char *p; | - | ||||||||||||
49 | ASN1_OCTET_STRING *sig = | - | ||||||||||||
50 | ((void *)0) | - | ||||||||||||
51 | ; | - | ||||||||||||
52 | - | |||||||||||||
53 | if (siglen != (unsigned int)RSA_size(rsa)
| 0 | ||||||||||||
54 | ERR_put_error(4,(0xfff),(119),__FILE__,113); | - | ||||||||||||
55 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
56 | } | - | ||||||||||||
57 | - | |||||||||||||
58 | s = malloc(siglen); | - | ||||||||||||
59 | if (s ==
| 0 | ||||||||||||
60 | ((void *)0)
| 0 | ||||||||||||
61 | ) { | - | ||||||||||||
62 | ERR_put_error(4,(0xfff),((1|64)),__FILE__,119); | - | ||||||||||||
63 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
64 | } | - | ||||||||||||
65 | i = RSA_public_decrypt((int)siglen, sigbuf, s, rsa, 1); | - | ||||||||||||
66 | - | |||||||||||||
67 | if (i <= 0
| 0 | ||||||||||||
68 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
69 | - | |||||||||||||
70 | p = s; | - | ||||||||||||
71 | sig = d2i_ASN1_OCTET_STRING( | - | ||||||||||||
72 | ((void *)0) | - | ||||||||||||
73 | , &p, (long)i); | - | ||||||||||||
74 | if (sig ==
| 0 | ||||||||||||
75 | ((void *)0)
| 0 | ||||||||||||
76 | ) | - | ||||||||||||
77 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
78 | - | |||||||||||||
79 | if ((
| 0 | ||||||||||||
80 | timingsafe_bcmp(m, sig->data, m_len) != 0
| 0 | ||||||||||||
81 | ERR_put_error(4,(0xfff),(104),__FILE__,134); | - | ||||||||||||
82 | } never executed: elseend of block | 0 | ||||||||||||
83 | ret = 1; never executed: ret = 1; | 0 | ||||||||||||
84 | err: code before this statement never executed: err: | 0 | ||||||||||||
85 | ASN1_OCTET_STRING_free(sig); | - | ||||||||||||
86 | freezero(s, (unsigned int)siglen); | - | ||||||||||||
87 | return never executed: ret;return ret; never executed: return ret; | 0 | ||||||||||||
88 | } | - | ||||||||||||
Switch to Source code | Preprocessed file |