X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=crypto%2Fevp%2Fopenbsd_hw.c;h=3831a5731e9cd5340daccff94d64146403f34af4;hb=2c5f3606d1dd86d5ca79bf169d25b366406d196f;hp=b4ac72dbcbfe9e87ae1c5a1647b46cf79fb396a5;hpb=26188931147826e280c73ac2692081ce230885c6;p=oweals%2Fopenssl.git diff --git a/crypto/evp/openbsd_hw.c b/crypto/evp/openbsd_hw.c index b4ac72dbcb..3831a5731e 100644 --- a/crypto/evp/openbsd_hw.c +++ b/crypto/evp/openbsd_hw.c @@ -47,21 +47,28 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include +#include +#include +#include "evp_locl.h" + +/* This stuff should now all be supported through + * crypto/engine/hw_openbsd_dev_crypto.c unless I botched it up */ +static void *dummy=&dummy; + +#if 0 + +/* check flag after OpenSSL headers to ensure make depend works */ +#ifdef OPENSSL_OPENBSD_DEV_CRYPTO + #include #include #include #include #include #include -#include -#include -#include -#include "evp_locl.h" #include -/* check flag after headers to ensure make depend works */ -#ifdef OPENSSL_OPENBSD_DEV_CRYPTO - /* longest key supported in hardware */ #define MAX_HW_KEY 24 #define MAX_HW_IV 8 @@ -290,6 +297,17 @@ static int dev_crypto_init_digest(MD_DATA *md_data,int mac) return 1; } +static int dev_crypto_cleanup_digest(MD_DATA *md_data) + { + if (ioctl(fd,CIOCFSESSION,&md_data->sess.ses) == -1) + { + err("CIOCFSESSION failed"); + return 0; + } + + return 1; + } + /* FIXME: if device can do chained MACs, then don't accumulate */ /* FIXME: move accumulation to the framework */ static int dev_crypto_md5_init(EVP_MD_CTX *ctx) @@ -345,7 +363,7 @@ static int do_digest(int ses,unsigned char *md,const void *data,int len) return 0; } } - printf("done\n"); + // printf("done\n"); return 1; } @@ -373,13 +391,15 @@ static int dev_crypto_md5_final(EVP_MD_CTX *ctx,unsigned char *md) if(ctx->flags&EVP_MD_CTX_FLAG_ONESHOT) { memcpy(md,md_data->md,MD5_DIGEST_LENGTH); - return 1; + ret=1; + } + else + { + ret=do_digest(md_data->sess.ses,md,md_data->data,md_data->len); + OPENSSL_free(md_data->data); + md_data->data=NULL; + md_data->len=0; } - - ret=do_digest(md_data->sess.ses,md,md_data->data,md_data->len); - OPENSSL_free(md_data->data); - md_data->data=NULL; - md_data->len=0; return ret; } @@ -398,6 +418,11 @@ static int dev_crypto_md5_copy(EVP_MD_CTX *to,const EVP_MD_CTX *from) return 1; } +static int dev_crypto_md5_cleanup(EVP_MD_CTX *ctx) + { + return dev_crypto_cleanup_digest(ctx->md_data); + } + static const EVP_MD md5_md= { NID_md5, @@ -408,6 +433,7 @@ static const EVP_MD md5_md= dev_crypto_md5_update, dev_crypto_md5_final, dev_crypto_md5_copy, + dev_crypto_md5_cleanup, EVP_PKEY_RSA_method, MD5_CBLOCK, sizeof(MD_DATA), @@ -417,3 +443,4 @@ const EVP_MD *EVP_dev_crypto_md5(void) { return &md5_md; } #endif +#endif