5 static unsigned long tom_encrypt(void *key, int keylen, void *iv,
6 void *pt, void *ct, int tlen)
11 if ((index = register_cipher(&aes_desc)) == -1)
12 return CRYPT_INVALID_CIPHER;
13 if ((err = cbc_start(index, iv, key, keylen, 0, &cbc)) != CRYPT_OK)
15 err= cbc_encrypt(pt, ct, tlen, &cbc);
20 static unsigned long tom_decrypt(void *key, int keylen, void *iv,
21 void *ct, void *pt, int tlen)
26 if ((index = register_cipher(&aes_desc)) == -1)
27 return CRYPT_INVALID_CIPHER;
28 if ((err = cbc_start(index, iv, key, keylen, 0, &cbc)) != CRYPT_OK)
30 err= cbc_decrypt(ct, pt, tlen, &cbc);
35 static unsigned long tom_hash(void *pt, int tlen, void *tag, int *taglen)
38 unsigned long ltaglen = *taglen;
40 if ((index = register_hash(&sha1_desc)) == -1)
41 return CRYPT_INVALID_HASH;
42 rc = hash_memory(index, pt, tlen, tag, <aglen);
47 static unsigned long tom_hmac(void *key, int keylen,
48 void *pt, int tlen, void *tag, int *taglen)
51 unsigned long ltaglen = *taglen;
53 if (keylen != 20) return CRYPT_INVALID_KEYSIZE;
54 if ((index = register_hash(&sha1_desc)) == -1)
55 return CRYPT_INVALID_HASH;
56 rc = hmac_memory(index, key, keylen, pt, tlen, tag, <aglen);
61 static const char *tom_errstr(unsigned long err)
63 return error_to_string((int)err);
66 struct crypto_interface tom_crypto_if = {
68 .encrypt = tom_encrypt,
69 .decrypt = tom_decrypt,