static int dev_crypto_init_digest(MD_DATA *md_data,int mac) { if(!dev_crypto_init(&md_data->sess)) return 0; md_data->len=0; md_data->data=NULL; md_data->sess.mac=mac; if (ioctl(fd,CIOCGSESSION,&md_data->sess) == -1) { err("CIOCGSESSION failed"); return 0; } return 1; }
static int dev_crypto_init_key(EVP_CIPHER_CTX *ctx, int cipher, const unsigned char *key, int klen) { if (!dev_crypto_init(CDATA(ctx))) return 0; CDATA(ctx)->key = OPENSSL_malloc(MAX_HW_KEY); assert(ctx->cipher->iv_len <= MAX_HW_IV); memcpy(CDATA(ctx)->key, key, klen); CDATA(ctx)->cipher = cipher; CDATA(ctx)->keylen = klen; if (ioctl(fd, CIOCGSESSION, CDATA(ctx)) == -1) { err("CIOCGSESSION failed"); return 0; } return 1; }
static int dev_crypto_init_key(EVP_CIPHER_CTX *ctx,int cipher, const unsigned char *key,int klen) { if(!dev_crypto_init(CDATA(ctx))) return 0; CDATA(ctx)->key=OPENSSL_malloc(MAX_HW_KEY); TINYCLR_SSL_ASSERT(ctx->cipher->iv_len <= MAX_HW_IV); TINYCLR_SSL_MEMCPY(CDATA(ctx)->key,key,klen); CDATA(ctx)->cipher=cipher; CDATA(ctx)->keylen=klen; if (TINYCLR_SSL_IOCTL(fd,CIOCGSESSION,CDATA(ctx)) == -1) { err("CIOCGSESSION failed"); return 0; } return 1; }