Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/ssh_chacha20poly1305/ttssh2/ttxssh/key.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4324 by maya, Sat Feb 19 11:07:05 2011 UTC revision 4327 by maya, Sun Feb 20 03:29:43 2011 UTC
# Line 335  int ssh_ecdsa_verify(EC_KEY *key, enum s Line 335  int ssh_ecdsa_verify(EC_KEY *key, enum s
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          }          }
# Line 931  Key *key_from_blob(char *data, int blen) Line 921  Key *key_from_blob(char *data, int blen)
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                  }                  }
# Line 1112  BOOL generate_SSH2_keysign(Key *keypair, Line 1090  BOOL generate_SSH2_keysign(Key *keypair,
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                  }                  }
# Line 1225  BOOL get_SSH2_publickey_blob(PTInstVar p Line 1193  BOOL get_SSH2_publickey_blob(PTInstVar p
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

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26