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