Browse Subversion Repository
Diff of /branches/ssh_chacha20poly1305/ttssh2/ttxssh/key.c
Parent Directory
| Revision Log
| Patch
| 335 |
} |
} |
| 336 |
|
|
| 337 |
/* hash the data */ |
/* hash the data */ |
| 338 |
switch (keytype) { |
nid = keytype_to_hash_nid(keytype); |
|
case KEY_ECDSA256: |
|
|
nid = NID_sha256; |
|
|
break; |
|
|
case KEY_ECDSA384: |
|
|
nid = NID_sha384; |
|
|
break; |
|
|
case KEY_ECDSA521: |
|
|
nid = NID_sha512; |
|
|
break; |
|
|
} |
|
| 339 |
if ((evp_md = EVP_get_digestbynid(nid)) == NULL) { |
if ((evp_md = EVP_get_digestbynid(nid)) == NULL) { |
| 340 |
return -8; |
return -8; |
| 341 |
} |
} |
| 921 |
goto error; |
goto error; |
| 922 |
} |
} |
| 923 |
|
|
| 924 |
switch (type) { |
ecdsa = EC_KEY_new_by_curve_name(keytype_to_cipher_nid(type)); |
|
case KEY_ECDSA256: |
|
|
ecdsa = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1); |
|
|
break; |
|
|
case KEY_ECDSA384: |
|
|
ecdsa = EC_KEY_new_by_curve_name(NID_secp384r1); |
|
|
break; |
|
|
case KEY_ECDSA521: |
|
|
ecdsa = EC_KEY_new_by_curve_name(NID_secp521r1); |
|
|
break; |
|
|
default: |
|
|
goto error; |
|
|
} |
|
| 925 |
if (ecdsa == NULL) { |
if (ecdsa == NULL) { |
| 926 |
goto error; |
goto error; |
| 927 |
} |
} |
| 1090 |
u_int len, dlen, nid; |
u_int len, dlen, nid; |
| 1091 |
buffer_t *buf2 = NULL; |
buffer_t *buf2 = NULL; |
| 1092 |
|
|
| 1093 |
switch (keypair->type) { |
nid = keytype_to_hash_nid(keypair->type); |
|
case KEY_ECDSA256: |
|
|
nid = NID_sha256; |
|
|
break; |
|
|
case KEY_ECDSA384: |
|
|
nid = NID_sha384; |
|
|
break; |
|
|
case KEY_ECDSA521: |
|
|
nid = NID_sha512; |
|
|
break; |
|
|
} |
|
| 1094 |
if ((evp_md = EVP_get_digestbynid(nid)) == NULL) { |
if ((evp_md = EVP_get_digestbynid(nid)) == NULL) { |
| 1095 |
goto error; |
goto error; |
| 1096 |
} |
} |
| 1193 |
|
|
| 1194 |
return TRUE; |
return TRUE; |
| 1195 |
} |
} |
| 1196 |
|
|
| 1197 |
|
int kextype_to_cipher_nid(enum kex_algorithm type) |
| 1198 |
|
{ |
| 1199 |
|
switch (type) { |
| 1200 |
|
case KEX_ECDH_SHA2_256: |
| 1201 |
|
return NID_X9_62_prime256v1; |
| 1202 |
|
case KEX_ECDH_SHA2_384: |
| 1203 |
|
return NID_secp384r1; |
| 1204 |
|
case KEX_ECDH_SHA2_521: |
| 1205 |
|
return NID_secp521r1; |
| 1206 |
|
} |
| 1207 |
|
return NID_undef; |
| 1208 |
|
} |
| 1209 |
|
|
| 1210 |
|
int keytype_to_hash_nid(enum ssh_keytype type) |
| 1211 |
|
{ |
| 1212 |
|
switch (type) { |
| 1213 |
|
case KEY_ECDSA256: |
| 1214 |
|
return NID_sha256; |
| 1215 |
|
case KEY_ECDSA384: |
| 1216 |
|
return NID_sha384; |
| 1217 |
|
case KEY_ECDSA521: |
| 1218 |
|
return NID_sha512; |
| 1219 |
|
} |
| 1220 |
|
return NID_undef; |
| 1221 |
|
} |
| 1222 |
|
|
| 1223 |
|
int keytype_to_cipher_nid(enum ssh_keytype type) |
| 1224 |
|
{ |
| 1225 |
|
switch (type) { |
| 1226 |
|
case KEY_ECDSA256: |
| 1227 |
|
return NID_X9_62_prime256v1; |
| 1228 |
|
case KEY_ECDSA384: |
| 1229 |
|
return NID_secp384r1; |
| 1230 |
|
case KEY_ECDSA521: |
| 1231 |
|
return NID_secp521r1; |
| 1232 |
|
} |
| 1233 |
|
return NID_undef; |
| 1234 |
|
} |
| 1235 |
|
|
| 1236 |
|
enum ssh_keytype nid_to_keytype(int nid) |
| 1237 |
|
{ |
| 1238 |
|
switch (nid) { |
| 1239 |
|
case NID_X9_62_prime256v1: |
| 1240 |
|
return KEY_ECDSA256; |
| 1241 |
|
case NID_secp384r1: |
| 1242 |
|
return KEY_ECDSA384; |
| 1243 |
|
case NID_secp521r1: |
| 1244 |
|
return KEY_ECDSA521; |
| 1245 |
|
} |
| 1246 |
|
return KEY_UNSPEC; |
| 1247 |
|
} |
|
|
Legend:
| Removed from v.4324 |
|
| changed lines |
| |
Added in v.4327 |
|
|
|