X-Git-Url: http://www.average.org/gitweb/?p=pam_pcsc_cr.git;a=blobdiff_plain;f=tom_crypto.c;h=79bd2023f800cc15d694d605a1e8f718b21c9b29;hp=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391;hb=5209d095d51e534ca1ca5fc47d637662df9a1eae;hpb=4f3247d992b2d4152da0ebc0daf828c874e0b1f1 diff --git a/tom_crypto.c b/tom_crypto.c index e69de29..79bd202 100644 --- a/tom_crypto.c +++ b/tom_crypto.c @@ -0,0 +1,47 @@ +#include + +#include "crypto_if.h" + +static int tom_encrypt(void *pt, int ptlen, void *key, int keylen, + void *ct, int *ctlen) +{ + symmetric_CBC cbc; + unsigned char iv[16] = {0}; + int index, err; + + if ((index = register_cipher(&aes_desc)) == -1) return -1; + // if ((index = find_cipher("aes")) == -1) return -1; + // cipher = cipher_descriptor[index]; + if ((err = cbc_start(index, iv, key, keylen, 0, &cbc)) != CRYPT_OK) + return err; + if ((err = cbc_encrypt(pt, ct, ptlen, &cbc)) != CRYPT_OK) + return err; + if ((err = cbc_done(&cbc)) != CRYPT_OK) + return err; + if ((err = unregister_cipher(&aes_desc)) != CRYPT_OK) + return err; + return 0; +} + +static int tom_decrypt() +{ + return 0; +} + +static int tom_hash() +{ + return 0; +} + +static int tom_hmac() +{ + return 0; +} + +struct crypto_interface tom_crypto_if = { + .name = "tomcrypt", + .encrypt = tom_encrypt, + .decrypt = tom_decrypt, + .hash = tom_hash, + .hmac = tom_hmac, +};