aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2007-09-28 15:42:04 +0000
committerRob Austein <sra@hactrn.net>2007-09-28 15:42:04 +0000
commite2dba8e62603a503ff3f89576d9a7b8e980bb2dc (patch)
tree228346d8d12fa7fe3733736ce1ead47a28974bf5
parenta2452c7c72b5be6bd7784c8c90ea6ccd8fcb56ea (diff)
SHA-384
svn path=/pow/POW-0.7/POW.c; revision=1043
-rw-r--r--pow/POW-0.7/POW.c34
1 files changed, 31 insertions, 3 deletions
diff --git a/pow/POW-0.7/POW.c b/pow/POW-0.7/POW.c
index 77f18f3e..06e28b81 100644
--- a/pow/POW-0.7/POW.c
+++ b/pow/POW-0.7/POW.c
@@ -132,7 +132,8 @@
#define SHA1_DIGEST 4
#define RIPEMD160_DIGEST 5
#define SHA256_DIGEST 6
-#define SHA512_DIGEST 7
+#define SHA384_DIGEST 7
+#define SHA512_DIGEST 8
// Object format
#define SHORTNAME_FORMAT 1
@@ -777,6 +778,7 @@ static char X509_object_sign__doc__[] =
" <member><constant>SHA1_DIGEST</constant></member>\n"
" <member><constant>RIPEMD160_DIGEST</constant></member>\n"
" <member><constant>SHA256_DIGEST</constant></member>\n"
+" <member><constant>SHA384_DIGEST</constant></member>\n"
" <member><constant>SHA512_DIGEST</constant></member>\n"
" </simplelist>\n"
" </body>\n"
@@ -841,6 +843,12 @@ X509_object_sign(x509_object *self, PyObject *args)
{ PyErr_SetString( SSLErrorObject, "could not sign certificate" ); goto error; }
break;
}
+ case SHA384_DIGEST:
+ {
+ if (!X509_sign(self->x509, pkey, EVP_sha384() ) )
+ { PyErr_SetString( SSLErrorObject, "could not sign certificate" ); goto error; }
+ break;
+ }
case SHA512_DIGEST:
{
if (!X509_sign(self->x509, pkey, EVP_sha512() ) )
@@ -2837,6 +2845,7 @@ static char x509_crl_object_sign__doc__[] =
" <member><constant>SHA1_DIGEST</constant></member>\n"
" <member><constant>RIPEMD160_DIGEST</constant></member>\n"
" <member><constant>SHA256_DIGEST</constant></member>\n"
+" <member><constant>SHA384_DIGEST</constant></member>\n"
" <member><constant>SHA512_DIGEST</constant></member>\n"
" </simplelist>\n"
" </body>\n"
@@ -2900,6 +2909,12 @@ x509_crl_object_sign(x509_crl_object *self, PyObject *args)
{ PyErr_SetString( SSLErrorObject, "could not sign certificate" ); goto error; }
break;
}
+ case SHA384_DIGEST:
+ {
+ if (!X509_CRL_sign(self->crl, pkey, EVP_sha384() ) )
+ { PyErr_SetString( SSLErrorObject, "could not sign certificate" ); goto error; }
+ break;
+ }
case SHA512_DIGEST:
{
if (!X509_CRL_sign(self->crl, pkey, EVP_sha512() ) )
@@ -5067,6 +5082,7 @@ static char asymmetric_object_sign__doc__[] =
" <member><constant>SHA1_DIGEST</constant></member>\n"
" <member><constant>RIPEMD160_DIGEST</constant></member>\n"
" <member><constant>SHA256_DIGEST</constant></member>\n"
+" <member><constant>SHA384_DIGEST</constant></member>\n"
" <member><constant>SHA512_DIGEST</constant></member>\n"
" </simplelist>\n"
" <para>\n"
@@ -5107,6 +5123,8 @@ asymmetric_object_sign(asymmetric_object *self, PyObject *args)
{ digest_nid = NID_ripemd160; digest_len = RIPEMD160_DIGEST_LENGTH; break; }
case SHA256_DIGEST:
{ digest_nid = NID_sha256; digest_len = SHA256_DIGEST_LENGTH; break; }
+ case SHA384_DIGEST:
+ { digest_nid = NID_sha384; digest_len = SHA384_DIGEST_LENGTH; break; }
case SHA512_DIGEST:
{ digest_nid = NID_sha512; digest_len = SHA512_DIGEST_LENGTH; break; }
default:
@@ -5183,6 +5201,7 @@ static char asymmetric_object_verify__doc__[] =
" <member><constant>SHA1_DIGEST</constant></member>\n"
" <member><constant>RIPEMD160_DIGEST</constant></member>\n"
" <member><constant>SHA256_DIGEST</constant></member>\n"
+" <member><constant>SHA384_DIGEST</constant></member>\n"
" <member><constant>SHA512_DIGEST</constant></member>\n"
" </simplelist>\n"
" <para>\n"
@@ -5214,9 +5233,11 @@ asymmetric_object_verify(asymmetric_object *self, PyObject *args)
case RIPEMD160_DIGEST:
{ digest_len = RIPEMD160_DIGEST_LENGTH; digest_nid = NID_ripemd160; break; }
case SHA256_DIGEST:
- { digest_len = SHA_DIGEST_LENGTH; digest_nid = NID_sha256; break; }
+ { digest_len = SHA256_DIGEST_LENGTH; digest_nid = NID_sha256; break; }
+ case SHA384_DIGEST:
+ { digest_len = SHA384_DIGEST_LENGTH; digest_nid = NID_sha384; break; }
case SHA512_DIGEST:
- { digest_len = SHA_DIGEST_LENGTH; digest_nid = NID_sha512; break; }
+ { digest_len = SHA512_DIGEST_LENGTH; digest_nid = NID_sha512; break; }
default:
{ PyErr_SetString( SSLErrorObject, "unsupported digest" ); goto error; }
}
@@ -5621,6 +5642,8 @@ digest_object_new(int digest_type)
{ self->digest_type = RIPEMD160_DIGEST; EVP_DigestInit( &self->digest_ctx, EVP_ripemd160() ); break; }
case SHA256_DIGEST:
{ self->digest_type = SHA256_DIGEST; EVP_DigestInit( &self->digest_ctx, EVP_sha256() ); break; }
+ case SHA384_DIGEST:
+ { self->digest_type = SHA384_DIGEST; EVP_DigestInit( &self->digest_ctx, EVP_sha384() ); break; }
case SHA512_DIGEST:
{ self->digest_type = SHA512_DIGEST; EVP_DigestInit( &self->digest_ctx, EVP_sha512() ); break; }
default:
@@ -5849,6 +5872,8 @@ hmac_object_new(int digest_type, char *key, int key_len)
{ md = EVP_ripemd160(); break; }
case SHA256_DIGEST:
{ md = EVP_sha256(); break; }
+ case SHA384_DIGEST:
+ { md = EVP_sha384(); break; }
case SHA512_DIGEST:
{ md = EVP_sha512(); break; }
default:
@@ -6199,6 +6224,7 @@ static char pow_module_new_digest__doc__[] =
" <member><constant>SHA1_DIGEST</constant></member>\n"
" <member><constant>RIPEMD160_DIGEST</constant></member>\n"
" <member><constant>SHA256_DIGEST</constant></member>\n"
+" <member><constant>SHA384_DIGEST</constant></member>\n"
" <member><constant>SHA512_DIGEST</constant></member>\n"
" </simplelist>\n"
" </body>\n"
@@ -6240,6 +6266,7 @@ static char pow_module_new_hmac__doc__[] =
" <member><constant>SHA1_DIGEST</constant></member>\n"
" <member><constant>RIPEMD160_DIGEST</constant></member>\n"
" <member><constant>SHA256_DIGEST</constant></member>\n"
+" <member><constant>SHA384_DIGEST</constant></member>\n"
" <member><constant>SHA512_DIGEST</constant></member>\n"
" </simplelist>\n"
" </body>\n"
@@ -7144,6 +7171,7 @@ init_POW(void)
install_int_const( d, "SHA1_DIGEST", SHA1_DIGEST );
install_int_const( d, "RIPEMD160_DIGEST", RIPEMD160_DIGEST );
install_int_const( d, "SHA256_DIGEST", SHA256_DIGEST );
+ install_int_const( d, "SHA384_DIGEST", SHA384_DIGEST );
install_int_const( d, "SHA512_DIGEST", SHA512_DIGEST );
// general name