| Line | Source | Count |
| 1 | | - |
| 2 | | - |
| 3 | | - |
| 4 | | - |
| 5 | | - |
| 6 | | - |
| 7 | typedef struct { | - |
| 8 | | - |
| 9 | int prime_len; | - |
| 10 | int generator; | - |
| 11 | int use_dsa; | - |
| 12 | | - |
| 13 | int gentmp[2]; | - |
| 14 | | - |
| 15 | } DH_PKEY_CTX; | - |
| 16 | | - |
| 17 | static int | - |
| 18 | pkey_dh_init(EVP_PKEY_CTX *ctx) | - |
| 19 | { | - |
| 20 | DH_PKEY_CTX *dctx; | - |
| 21 | | - |
| 22 | dctx = malloc(sizeof(DH_PKEY_CTX)); | - |
| 23 | if (!dctx| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 24 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 25 | dctx->prime_len = 1024; | - |
| 26 | dctx->generator = 2; | - |
| 27 | dctx->use_dsa = 0; | - |
| 28 | | - |
| 29 | ctx->data = dctx; | - |
| 30 | ctx->keygen_info = dctx->gentmp; | - |
| 31 | ctx->keygen_info_count = 2; | - |
| 32 | | - |
| 33 | return never executed: return 1; 1;never executed: return 1; | 0 |
| 34 | } | - |
| 35 | | - |
| 36 | static int | - |
| 37 | pkey_dh_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src) | - |
| 38 | { | - |
| 39 | DH_PKEY_CTX *dctx, *sctx; | - |
| 40 | | - |
| 41 | if (!pkey_dh_init(dst)| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 42 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 43 | sctx = src->data; | - |
| 44 | dctx = dst->data; | - |
| 45 | dctx->prime_len = sctx->prime_len; | - |
| 46 | dctx->generator = sctx->generator; | - |
| 47 | dctx->use_dsa = sctx->use_dsa; | - |
| 48 | return never executed: return 1; 1;never executed: return 1; | 0 |
| 49 | } | - |
| 50 | | - |
| 51 | static void | - |
| 52 | pkey_dh_cleanup(EVP_PKEY_CTX *ctx) | - |
| 53 | { | - |
| 54 | DH_PKEY_CTX *dctx = ctx->data; | - |
| 55 | | - |
| 56 | free(dctx); | - |
| 57 | } never executed: end of block | 0 |
| 58 | | - |
| 59 | static int | - |
| 60 | pkey_dh_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) | - |
| 61 | { | - |
| 62 | DH_PKEY_CTX *dctx = ctx->data; | - |
| 63 | | - |
| 64 | switch (type) { | - |
| 65 | case never executed: case (0x1000 + 1): (0x1000 + 1):never executed: case (0x1000 + 1): | 0 |
| 66 | if (p1 < 256| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 67 | return never executed: return -2; -2;never executed: return -2; | 0 |
| 68 | dctx->prime_len = p1; | - |
| 69 | return never executed: return 1; 1;never executed: return 1; | 0 |
| 70 | | - |
| 71 | case never executed: case (0x1000 + 2): (0x1000 + 2):never executed: case (0x1000 + 2): | 0 |
| 72 | dctx->generator = p1; | - |
| 73 | return never executed: return 1; 1;never executed: return 1; | 0 |
| 74 | | - |
| 75 | case never executed: case 2: 2:never executed: case 2: | 0 |
| 76 | | - |
| 77 | return never executed: return 1; 1;never executed: return 1; | 0 |
| 78 | | - |
| 79 | default never executed: default: :never executed: default: | 0 |
| 80 | return never executed: return -2; -2;never executed: return -2; | 0 |
| 81 | } | - |
| 82 | } | - |
| 83 | | - |
| 84 | static int | - |
| 85 | pkey_dh_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, const char *value) | - |
| 86 | { | - |
| 87 | long lval; | - |
| 88 | char *ep; | - |
| 89 | int len; | - |
| 90 | | - |
| 91 | if (!| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 92 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 93 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 94 | ) && __builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 95 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 96 | ) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 97 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 98 | ), __s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 99 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 100 | ), (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 101 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 102 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 103 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 104 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 105 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 106 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 107 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 108 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 109 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 110 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 111 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 112 | ) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 113 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 114 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 115 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 116 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 117 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 118 | ) == 1) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 119 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 120 | ), __s1_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 121 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 122 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 123 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 124 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 125 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 126 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 127 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 128 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 129 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 130 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 131 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 132 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 133 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 134 | ))[0] - __s2[0]); if (__s1_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 135 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 136 | ))[1] - __s2[1]); if (__s1_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 137 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 138 | ))[2] - __s2[2]); if (__s1_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( type ))[3] - __s2[3]); | 0 |
| 139 | type| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( type ))[3] - __s2[3]); | 0 |
| 140 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 141 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 142 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 143 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 144 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 145 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 146 | ) == 1) && (__s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 147 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 148 | ), __s2_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 149 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 150 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 151 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 152 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 153 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 154 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 155 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 156 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 157 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 158 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 159 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 160 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 161 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 162 | ))[0] - __s2[0]); if (__s2_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 163 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 164 | ))[1] - __s2[1]); if (__s2_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 165 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 166 | ))[2] - __s2[2]); if (__s2_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( "dh_paramgen_prime_len" ))[3] - __s2[3]); | 0 |
| 167 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "dh_paramgen_prime_len" ))[3] - __s2[3]); | 0 |
| 168 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 169 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 170 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 171 | "dh_paramgen_prime_len"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 172 | )))); })| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 173 | ) { | - |
| 174 | | - |
| 175 | (*__errno_location ()) | - |
| 176 | = 0; | - |
| 177 | lval = strtol(value, &ep, 10); | - |
| 178 | if (value[0] == '\0'| TRUE | never evaluated | | FALSE | never evaluated |
|| *| TRUE | never evaluated | | FALSE | never evaluated |
ep != '\0'| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 179 | goto never executed: goto not_a_number; not_a_number;never executed: goto not_a_number; | 0 |
| 180 | if (( | - |
| 181 | (*| TRUE | never evaluated | | FALSE | never evaluated |
__errno_location ()) | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 182 | == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 183 | 34| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 184 | && | - |
| 185 | (lval == 0x7fffffffffffffffL| TRUE | never evaluated | | FALSE | never evaluated |
|| lval == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 186 | (-0x7fffffffffffffffL - 1L)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 187 | )) || | - |
| 188 | (lval > 0x7fffffff| TRUE | never evaluated | | FALSE | never evaluated |
|| lval < | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 189 | (-0x7fffffff - 1)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 190 | )) | - |
| 191 | goto never executed: goto out_of_range; out_of_range;never executed: goto out_of_range; | 0 |
| 192 | len = lval; | - |
| 193 | return never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 1), len, ((void *)0) ); EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 1), len, never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 1), len, ((void *)0) ); | 0 |
| 194 | ((void *)0) never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 1), len, ((void *)0) ); | 0 |
| 195 | ); never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 1), len, ((void *)0) ); | 0 |
| 196 | } else if (!| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 197 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 198 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 199 | ) && __builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 200 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 201 | ) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 202 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 203 | ), __s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 204 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 205 | ), (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 206 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 207 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 208 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 209 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 210 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 211 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 212 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 213 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 214 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 215 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 216 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 217 | ) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 218 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 219 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 220 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 221 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 222 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 223 | ) == 1) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 224 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 225 | ), __s1_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 226 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 227 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 228 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 229 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 230 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 231 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 232 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 233 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 234 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 235 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 236 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 237 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 238 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 239 | ))[0] - __s2[0]); if (__s1_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 240 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 241 | ))[1] - __s2[1]); if (__s1_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 242 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 243 | ))[2] - __s2[2]); if (__s1_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( type ))[3] - __s2[3]); | 0 |
| 244 | type| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( type ))[3] - __s2[3]); | 0 |
| 245 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 246 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 247 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 248 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 249 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 250 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 251 | ) == 1) && (__s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 252 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 253 | ), __s2_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 254 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 255 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 256 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 257 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 258 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 259 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 260 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 261 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 262 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 263 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 264 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 265 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 266 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 267 | ))[0] - __s2[0]); if (__s2_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 268 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 269 | ))[1] - __s2[1]); if (__s2_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 270 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 271 | ))[2] - __s2[2]); if (__s2_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( "dh_paramgen_generator" ))[3] - __s2[3]); | 0 |
| 272 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "dh_paramgen_generator" ))[3] - __s2[3]); | 0 |
| 273 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 274 | type| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 275 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 276 | "dh_paramgen_generator"| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 277 | )))); })| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 278 | ) { | - |
| 279 | | - |
| 280 | (*__errno_location ()) | - |
| 281 | = 0; | - |
| 282 | lval = strtol(value, &ep, 10); | - |
| 283 | if (value[0] == '\0'| TRUE | never evaluated | | FALSE | never evaluated |
|| *| TRUE | never evaluated | | FALSE | never evaluated |
ep != '\0'| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 284 | goto never executed: goto not_a_number; not_a_number;never executed: goto not_a_number; | 0 |
| 285 | if (( | - |
| 286 | (*| TRUE | never evaluated | | FALSE | never evaluated |
__errno_location ()) | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 287 | == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 288 | 34| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 289 | && | - |
| 290 | (lval == 0x7fffffffffffffffL| TRUE | never evaluated | | FALSE | never evaluated |
|| lval == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 291 | (-0x7fffffffffffffffL - 1L)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 292 | )) || | - |
| 293 | (lval > 0x7fffffff| TRUE | never evaluated | | FALSE | never evaluated |
|| lval < | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 294 | (-0x7fffffff - 1)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 295 | )) | - |
| 296 | goto never executed: goto out_of_range; out_of_range;never executed: goto out_of_range; | 0 |
| 297 | len = lval; | - |
| 298 | return never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 2), len, ((void *)0) ); EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 2), len, never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 2), len, ((void *)0) ); | 0 |
| 299 | ((void *)0) never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 2), len, ((void *)0) ); | 0 |
| 300 | ); never executed: return EVP_PKEY_CTX_ctrl(ctx, 28, (1<<1), (0x1000 + 2), len, ((void *)0) ); | 0 |
| 301 | } | - |
| 302 | | - |
| 303 | not_a_number: code before this statement never executed: not_a_number: | 0 |
| 304 | out_of_range: | - |
| 305 | return never executed: return -2; -2;never executed: return -2; | 0 |
| 306 | } | - |
| 307 | | - |
| 308 | static int | - |
| 309 | pkey_dh_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) | - |
| 310 | { | - |
| 311 | DH *dh = | - |
| 312 | ((void *)0) | - |
| 313 | ; | - |
| 314 | DH_PKEY_CTX *dctx = ctx->data; | - |
| 315 | BN_GENCB *pcb, cb; | - |
| 316 | int ret; | - |
| 317 | | - |
| 318 | if (ctx->pkey_gencb| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 319 | pcb = &cb; | - |
| 320 | evp_pkey_set_cb_translate(pcb, ctx); | - |
| 321 | } never executed: end of block else | 0 |
| 322 | pcb = never executed: pcb = ((void *)0) ; | 0 |
| 323 | ((void *)0) never executed: pcb = ((void *)0) ; | 0 |
| 324 | ; never executed: pcb = ((void *)0) ; | 0 |
| 325 | dh = DH_new(); | - |
| 326 | if (!dh| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 327 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 328 | ret = DH_generate_parameters_ex(dh, dctx->prime_len, dctx->generator, | - |
| 329 | pcb); | - |
| 330 | if (ret| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 331 | EVP_PKEY_assign((pkey),28, (char *)(dh)); never executed: EVP_PKEY_assign((pkey),28, (char *)(dh)); | 0 |
| 332 | else | - |
| 333 | DH_free(dh); never executed: DH_free(dh); | 0 |
| 334 | return never executed: return ret; ret;never executed: return ret; | 0 |
| 335 | } | - |
| 336 | | - |
| 337 | static int | - |
| 338 | pkey_dh_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) | - |
| 339 | { | - |
| 340 | DH *dh = | - |
| 341 | ((void *)0) | - |
| 342 | ; | - |
| 343 | | - |
| 344 | if (ctx->pkey == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 345 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 346 | ) { | - |
| 347 | ERR_put_error(5,(0xfff),(107),__FILE__,218); | - |
| 348 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 349 | } | - |
| 350 | dh = DH_new(); | - |
| 351 | if (!dh| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 352 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 353 | EVP_PKEY_assign((pkey),28, (char *)(dh)); | - |
| 354 | | - |
| 355 | if (!EVP_PKEY_copy_parameters(pkey, ctx->pkey)| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 356 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 357 | return never executed: return DH_generate_key(pkey->pkey.dh); DH_generate_key(pkey->pkey.dh);never executed: return DH_generate_key(pkey->pkey.dh); | 0 |
| 358 | } | - |
| 359 | | - |
| 360 | static int | - |
| 361 | pkey_dh_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen) | - |
| 362 | { | - |
| 363 | int ret; | - |
| 364 | | - |
| 365 | if (!ctx->pkey| TRUE | never evaluated | | FALSE | never evaluated |
|| !ctx->peerkey| TRUE | never evaluated | | FALSE | never evaluated |
) { | 0 |
| 366 | ERR_put_error(5,(0xfff),(108),__FILE__,237); | - |
| 367 | return never executed: return 0; 0;never executed: return 0; | 0 |
| 368 | } | - |
| 369 | ret = DH_compute_key(key, ctx->peerkey->pkey.dh->pub_key, | - |
| 370 | ctx->pkey->pkey.dh); | - |
| 371 | if (ret < 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 372 | return never executed: return ret; ret;never executed: return ret; | 0 |
| 373 | *keylen = ret; | - |
| 374 | return never executed: return 1; 1;never executed: return 1; | 0 |
| 375 | } | - |
| 376 | | - |
| 377 | const EVP_PKEY_METHOD dh_pkey_meth = { | - |
| 378 | .pkey_id = 28, | - |
| 379 | .flags = 2, | - |
| 380 | | - |
| 381 | .init = pkey_dh_init, | - |
| 382 | .copy = pkey_dh_copy, | - |
| 383 | .cleanup = pkey_dh_cleanup, | - |
| 384 | | - |
| 385 | .paramgen = pkey_dh_paramgen, | - |
| 386 | | - |
| 387 | .keygen = pkey_dh_keygen, | - |
| 388 | | - |
| 389 | .derive = pkey_dh_derive, | - |
| 390 | | - |
| 391 | .ctrl = pkey_dh_ctrl, | - |
| 392 | .ctrl_str = pkey_dh_ctrl_str | - |
| 393 | }; | - |
| | |