summaryrefslogtreecommitdiff
path: root/core/fdrm/crypto/fx_crypt.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/fdrm/crypto/fx_crypt.h')
-rw-r--r--core/fdrm/crypto/fx_crypt.h49
1 files changed, 29 insertions, 20 deletions
diff --git a/core/fdrm/crypto/fx_crypt.h b/core/fdrm/crypto/fx_crypt.h
index 2b127948f0..5416080af7 100644
--- a/core/fdrm/crypto/fx_crypt.h
+++ b/core/fdrm/crypto/fx_crypt.h
@@ -16,6 +16,19 @@ struct CRYPT_rc4_context {
int32_t m[kRC4ContextPermutationLength];
};
+#define MAX_NR 14
+#define MAX_NK 8
+#define MAX_NB 8
+struct CRYPT_aes_context {
+ void (*encrypt)(CRYPT_aes_context* ctx, unsigned int* block);
+ void (*decrypt)(CRYPT_aes_context* ctx, unsigned int* block);
+ int Nb;
+ int Nr;
+ unsigned int keysched[(MAX_NR + 1) * MAX_NB];
+ unsigned int invkeysched[(MAX_NR + 1) * MAX_NB];
+ unsigned int iv[MAX_NB];
+};
+
struct CRYPT_md5_context {
uint32_t total[2];
uint32_t state[4];
@@ -30,13 +43,7 @@ struct CRYPT_sha1_context {
unsigned int lenlo;
};
-struct CRYPT_sha256_context {
- uint32_t total[2];
- uint32_t state[8];
- uint8_t buffer[64];
-};
-
-struct CRYPT_sha384_context {
+struct CRYPT_sha2_context {
uint64_t total[2];
uint64_t state[8];
uint8_t buffer[128];
@@ -53,17 +60,17 @@ void CRYPT_ArcFourCrypt(CRYPT_rc4_context* context,
uint8_t* data,
uint32_t size);
-void CRYPT_AESSetKey(void* context,
+void CRYPT_AESSetKey(CRYPT_aes_context* context,
uint32_t blocklen,
const uint8_t* key,
uint32_t keylen,
bool bEncrypt);
-void CRYPT_AESSetIV(void* context, const uint8_t* iv);
-void CRYPT_AESDecrypt(void* context,
+void CRYPT_AESSetIV(CRYPT_aes_context* context, const uint8_t* iv);
+void CRYPT_AESDecrypt(CRYPT_aes_context* context,
uint8_t* dest,
const uint8_t* src,
uint32_t size);
-void CRYPT_AESEncrypt(void* context,
+void CRYPT_AESEncrypt(CRYPT_aes_context* context,
uint8_t* dest,
const uint8_t* src,
uint32_t size);
@@ -82,27 +89,29 @@ void CRYPT_SHA1Update(CRYPT_sha1_context* context,
void CRYPT_SHA1Finish(CRYPT_sha1_context* context, uint8_t digest[20]);
void CRYPT_SHA1Generate(const uint8_t* data, uint32_t size, uint8_t digest[20]);
-void CRYPT_SHA256Start(CRYPT_sha256_context* context);
-void CRYPT_SHA256Update(CRYPT_sha256_context* context,
+void CRYPT_SHA256Start(CRYPT_sha2_context* context);
+void CRYPT_SHA256Update(CRYPT_sha2_context* context,
const uint8_t* data,
uint32_t size);
-void CRYPT_SHA256Finish(CRYPT_sha256_context* context, uint8_t digest[32]);
+void CRYPT_SHA256Finish(CRYPT_sha2_context* context, uint8_t digest[32]);
void CRYPT_SHA256Generate(const uint8_t* data,
uint32_t size,
uint8_t digest[32]);
-void CRYPT_SHA384Start(CRYPT_sha384_context* context);
-void CRYPT_SHA384Update(CRYPT_sha384_context* context,
+void CRYPT_SHA384Start(CRYPT_sha2_context* context);
+void CRYPT_SHA384Update(CRYPT_sha2_context* context,
const uint8_t* data,
uint32_t size);
-void CRYPT_SHA384Finish(CRYPT_sha384_context* context, uint8_t digest[48]);
+void CRYPT_SHA384Finish(CRYPT_sha2_context* context, uint8_t digest[48]);
void CRYPT_SHA384Generate(const uint8_t* data,
uint32_t size,
uint8_t digest[48]);
-void CRYPT_SHA512Start(void* context);
-void CRYPT_SHA512Update(void* context, const uint8_t* data, uint32_t size);
-void CRYPT_SHA512Finish(void* context, uint8_t digest[64]);
+void CRYPT_SHA512Start(CRYPT_sha2_context* context);
+void CRYPT_SHA512Update(CRYPT_sha2_context* context,
+ const uint8_t* data,
+ uint32_t size);
+void CRYPT_SHA512Finish(CRYPT_sha2_context* context, uint8_t digest[64]);
void CRYPT_SHA512Generate(const uint8_t* data,
uint32_t size,
uint8_t digest[64]);