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

Reply via email to