version 1.10.2.2, 2002/03/07 17:37:47 |
version 1.10.2.3, 2002/05/17 00:03:24 |
|
|
#include "key.h" |
#include "key.h" |
#include "ssh-rsa.h" |
#include "ssh-rsa.h" |
#include "compat.h" |
#include "compat.h" |
|
#include "ssh.h" |
|
|
/* RSASSA-PKCS1-v1_5 (PKCS #1 v2.0 signature) with SHA1 */ |
/* RSASSA-PKCS1-v1_5 (PKCS #1 v2.0 signature) with SHA1 */ |
int |
int |
|
|
error("ssh_rsa_sign: no RSA key"); |
error("ssh_rsa_sign: no RSA key"); |
return -1; |
return -1; |
} |
} |
if (datafellows & SSH_BUG_SIGBLOB) { |
|
error("ssh_rsa_sign: SSH_BUG_SIGBLOB not supported"); |
|
return -1; |
|
} |
|
nid = (datafellows & SSH_BUG_RSASIGMD5) ? NID_md5 : NID_sha1; |
nid = (datafellows & SSH_BUG_RSASIGMD5) ? NID_md5 : NID_sha1; |
if ((evp_md = EVP_get_digestbynid(nid)) == NULL) { |
if ((evp_md = EVP_get_digestbynid(nid)) == NULL) { |
error("ssh_rsa_sign: EVP_get_digestbynid %d failed", nid); |
error("ssh_rsa_sign: EVP_get_digestbynid %d failed", nid); |
|
|
error("ssh_rsa_verify: no RSA key"); |
error("ssh_rsa_verify: no RSA key"); |
return -1; |
return -1; |
} |
} |
if (datafellows & SSH_BUG_SIGBLOB) { |
if (BN_num_bits(key->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) { |
error("ssh_rsa_verify: SSH_BUG_SIGBLOB not supported"); |
|
return -1; |
|
} |
|
if (BN_num_bits(key->rsa->n) < 768) { |
|
error("ssh_rsa_verify: n too small: %d bits", |
error("ssh_rsa_verify: n too small: %d bits", |
BN_num_bits(key->rsa->n)); |
BN_num_bits(key->rsa->n)); |
return -1; |
return -1; |