summaryrefslogtreecommitdiff
path: root/core/fdrm/crypto/fx_crypt.h
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2017-05-05 17:08:07 -0700
committerChromium commit bot <commit-bot@chromium.org>2017-05-06 00:23:07 +0000
commit332ef5423df9aa7a28166907f4a6ac8ac095163d (patch)
treeff0891147fb3cf505e337b3968bdd0c404530961 /core/fdrm/crypto/fx_crypt.h
parentf0ea70825a465ebb8979a7f6e70b0133be398f64 (diff)
downloadpdfium-332ef5423df9aa7a28166907f4a6ac8ac095163d.tar.xz
Remove type-unsafe void* / uint8_t* usage in fx_crypt.h
Consolidate all of the sha2 contexts while we're at it, the one with the largest buf is suitable for use by all the others. Change-Id: Iace6cd8ca4405f75f78842a1559c3a2478910218 Reviewed-on: https://pdfium-review.googlesource.com/4994 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
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]);