From 0b74aeb284799e1ac419f313e76d6ea86e113512 Mon Sep 17 00:00:00 2001 From: Akira Kakuto Date: Sat, 4 Jul 2015 11:48:58 +0000 Subject: S. Hirata updates a few files. git-svn-id: svn://tug.org/texlive/trunk@37757 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/dvipdfm-x/dpxcrypt.h | 62 ++++++++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 7 deletions(-) (limited to 'Build/source/texk/dvipdfm-x/dpxcrypt.h') diff --git a/Build/source/texk/dvipdfm-x/dpxcrypt.h b/Build/source/texk/dvipdfm-x/dpxcrypt.h index 16a856cb369..5b390f63b08 100644 --- a/Build/source/texk/dvipdfm-x/dpxcrypt.h +++ b/Build/source/texk/dvipdfm-x/dpxcrypt.h @@ -29,25 +29,73 @@ # include #endif +typedef uint64_t u64; +typedef uint32_t u32; +typedef uint8_t u8; + /* libgcrypt md5 */ typedef struct { - uint32_t A,B,C,D; /* chaining variables */ - unsigned long nblocks; + uint32_t A, B, C, D; /* chaining variables */ + size_t nblocks; unsigned char buf[64]; int count; } MD5_CONTEXT; void MD5_init (MD5_CONTEXT *ctx); -void MD5_write (MD5_CONTEXT *ctx, const unsigned char *inbuf, unsigned long inlen); -void MD5_final (unsigned char *outbuf, MD5_CONTEXT *ctx); +void MD5_write(MD5_CONTEXT *ctx, const unsigned char *inbuf, unsigned long inlen); +void MD5_final(unsigned char *outbuf, MD5_CONTEXT *ctx); + +typedef struct { + u32 h0,h1,h2,h3,h4,h5,h6,h7; + size_t nblocks; + unsigned char buf[64]; + int count; +} SHA256_CONTEXT; + +typedef struct +{ + u64 h0, h1, h2, h3, h4, h5, h6, h7; +} SHA512_STATE; + +typedef struct +{ + SHA512_STATE state; + size_t nblocks; + unsigned char buf[128]; + int count; +} SHA512_CONTEXT; + +void SHA256_init (SHA256_CONTEXT *ctx); +void SHA256_write(SHA256_CONTEXT *ctx, + const unsigned char *inbuf, unsigned long inlen); +void SHA256_final(unsigned char *outbuf, SHA256_CONTEXT *ctx); + +void SHA384_init (SHA512_CONTEXT *ctx); +#define SHA384_write(c,b,l) SHA512_write((c),(b),(l)) +#define SHA384_final(b,c) SHA512_final((b),(c)) +void SHA512_init (SHA512_CONTEXT *ctx); +void SHA512_write(SHA512_CONTEXT *ctx, + const unsigned char *inbuf, unsigned long inlen); +void SHA512_final(unsigned char *outbuf, SHA512_CONTEXT *ctx); /* libgcrypt arcfour */ typedef struct { int idx_i, idx_j; unsigned char sbox[256]; -} ARC4_KEY; +} ARC4_CONTEXT; + +#define AES_BLOCKSIZE 16 + +void ARC4 (ARC4_CONTEXT *ctx, unsigned long len, const unsigned char *inbuf, unsigned char *outbuf); +void ARC4_set_key (ARC4_CONTEXT *ctx, unsigned int keylen, const unsigned char *key); + +void AES_ecb_encrypt (const unsigned char *key, size_t key_len, + const unsigned char *plain, size_t plain_len, + unsigned char **cipher, size_t *cipher_len); -void ARC4 (ARC4_KEY *ctx, unsigned long len, const unsigned char *inbuf, unsigned char *outbuf); -void ARC4_set_key (ARC4_KEY *ctx, unsigned int keylen, const unsigned char *key); +void AES_cbc_encrypt (const unsigned char *key, size_t key_len, + const unsigned char *iv, int padding, + const unsigned char *plain, size_t plain_len, + unsigned char **cipher, size_t *cipher_len); #endif /* _DPXCRYPT_H_ */ -- cgit v1.2.3