libaacs | branch: master | Janusz Dziemidowicz <[email protected]> | Fri Sep 6 23:42:14 2013 +0200| [3444827e559dcfca1ab77fd4ec35f6138bbf522c] | committer: npzacs
Convenience function implementing AES-128D > http://git.videolan.org/gitweb.cgi/libaacs.git/?a=commit;h=3444827e559dcfca1ab77fd4ec35f6138bbf522c --- src/libaacs/crypto.c | 10 ++++++++++ src/libaacs/crypto.h | 1 + 2 files changed, 11 insertions(+) diff --git a/src/libaacs/crypto.c b/src/libaacs/crypto.c index 2898779..acb65e8 100644 --- a/src/libaacs/crypto.c +++ b/src/libaacs/crypto.c @@ -136,6 +136,16 @@ int crypto_init() return crypto_init_check; } +void crypto_aes128d(const uint8_t *key, const uint8_t *data, uint8_t *dst) +{ + gcry_cipher_hd_t gcry_h; + + gcry_cipher_open(&gcry_h, GCRY_CIPHER_AES, GCRY_CIPHER_MODE_ECB, 0); + gcry_cipher_setkey(gcry_h, key, 16); + gcry_cipher_decrypt(gcry_h, dst, 16, data, 16); + gcry_cipher_close(gcry_h); +} + void crypto_aesg3(const uint8_t *D, uint8_t *lsubk, uint8_t* rsubk, uint8_t *pk) { if (lsubk) { diff --git a/src/libaacs/crypto.h b/src/libaacs/crypto.h index b3e20aa..4607360 100644 --- a/src/libaacs/crypto.h +++ b/src/libaacs/crypto.h @@ -26,6 +26,7 @@ #include <stdint.h> AACS_PRIVATE int crypto_init(void); +AACS_PRIVATE void crypto_aes128d(const uint8_t *key, const uint8_t *data, uint8_t *dst); AACS_PRIVATE void crypto_aesg3(const uint8_t *D, uint8_t *lsubk, uint8_t* rsubk, uint8_t *pk); // returns left, centre, right keys AACS_PRIVATE void crypto_aes_cmac_16(const unsigned char *data, const unsigned char *aes_key, unsigned char *cmac); _______________________________________________ libaacs-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libaacs-devel
