Add skeleton for RSASHA256.

This commit is contained in:
Giovanni Bajo
2012-04-24 02:21:50 +02:00
committed by Simon Kelley
parent d31d057aa3
commit b573aebc09
3 changed files with 39 additions and 12 deletions

View File

@@ -50,7 +50,7 @@ typedef struct
alg ## _verify \
} /**/
/* Algorithm 5: RSASHA1 */
DEFINE_VALG(rsasha1);
DEFINE_VALG(rsasha256);
#endif /* DNSSEC_CRYPTO_H */

View File

@@ -1,41 +1,63 @@
#include <string.h>
#include <openssl/evp.h>
struct rsasha1_state
struct rsasha_state
{
union
{
EVP_MD_CTX hash;
unsigned char digest[20];
unsigned char digest[32];
};
unsigned char *sig;
unsigned siglen;
} RSASHA1;
} RSASHA;
int rsasha1_set_signature(unsigned char *data, unsigned len)
{
RSASHA1.sig = data;
RSASHA1.siglen = len;
RSASHA.sig = data;
RSASHA.siglen = len;
return 1;
}
int rsasha256_set_signature(unsigned char *data, unsigned len)
{
RSASHA.sig = data;
RSASHA.siglen = len;
return 1;
}
void rsasha1_begin_data(void)
{
EVP_MD_CTX_init(&RSASHA1.hash);
EVP_DigestInit_ex(&RSASHA1.hash, EVP_sha1(), NULL);
EVP_MD_CTX_init(&RSASHA.hash);
EVP_DigestInit_ex(&RSASHA.hash, EVP_sha1(), NULL);
}
void rsasha256_begin_data(void)
{
EVP_MD_CTX_init(&RSASHA.hash);
EVP_DigestInit_ex(&RSASHA.hash, EVP_sha256(), NULL);
}
void rsasha1_add_data(void *data, unsigned len)
{
EVP_DigestUpdate(&RSASHA1.hash, data, len);
EVP_DigestUpdate(&RSASHA.hash, data, len);
}
void rsasha256_add_data(void *data, unsigned len)
{
EVP_DigestUpdate(&RSASHA.hash, data, len);
}
void rsasha1_end_data(void)
{
unsigned char digest[20];
EVP_DigestFinal(&RSASHA1.hash, digest, NULL);
memcpy(RSASHA1.digest, digest, 20);
EVP_DigestFinal(&RSASHA.hash, digest, NULL);
memcpy(RSASHA.digest, digest, 20);
}
void rsasha256_end_data(void)
{
unsigned char digest[32];
EVP_DigestFinal(&RSASHA.hash, digest, NULL);
memcpy(RSASHA.digest, digest, 32);
}
int rsasha1_verify(unsigned char *key, unsigned key_len)
@@ -43,3 +65,8 @@ int rsasha1_verify(unsigned char *key, unsigned key_len)
return 0;
}
int rsasha256_verify(unsigned char *key, unsigned key_len)
{
return 0;
}

View File

@@ -23,7 +23,7 @@ static const VerifyAlg valgs[] =
VALG_VTABLE(rsasha1), /* 5: RSASHA1 */
{0,0,0,0,0}, /* 6: DSA-NSEC3-SHA1 */
{0,0,0,0,0}, /* 7: RSASHA1-NSEC3-SHA1 */
{0,0,0,0,0}, /* 8: RSASHA256 */
VALG_VTABLE(rsasha256), /* 8: RSASHA256 */
{0,0,0,0,0}, /* 9: unassigned */
{0,0,0,0,0}, /* 10: RSASHA512 */
{0,0,0,0,0}, /* 11: unassigned */