chacha_enc.c: fix for EBCDIC platforms
Signed-off-by: Joerg Schmidbauer <jschmidb@de.ibm.com> Reviewed-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10417)
This commit is contained in:
parent
3cc26f2eba
commit
c31950b964
1 changed files with 13 additions and 4 deletions
|
@ -12,6 +12,7 @@
|
|||
#include <string.h>
|
||||
|
||||
#include "crypto/chacha.h"
|
||||
#include "crypto/ctype.h"
|
||||
|
||||
typedef unsigned int u32;
|
||||
typedef unsigned char u8;
|
||||
|
@ -78,10 +79,18 @@ void ChaCha20_ctr32(unsigned char *out, const unsigned char *inp,
|
|||
size_t todo, i;
|
||||
|
||||
/* sigma constant "expand 32-byte k" in little-endian encoding */
|
||||
input[0] = ((u32)'e') | ((u32)'x'<<8) | ((u32)'p'<<16) | ((u32)'a'<<24);
|
||||
input[1] = ((u32)'n') | ((u32)'d'<<8) | ((u32)' '<<16) | ((u32)'3'<<24);
|
||||
input[2] = ((u32)'2') | ((u32)'-'<<8) | ((u32)'b'<<16) | ((u32)'y'<<24);
|
||||
input[3] = ((u32)'t') | ((u32)'e'<<8) | ((u32)' '<<16) | ((u32)'k'<<24);
|
||||
input[0] = ((u32)ossl_toascii('e')) | ((u32)ossl_toascii('x') << 8)
|
||||
| ((u32)ossl_toascii('p') << 16)
|
||||
| ((u32)ossl_toascii('a') << 24);
|
||||
input[1] = ((u32)ossl_toascii('n')) | ((u32)ossl_toascii('d') << 8)
|
||||
| ((u32)ossl_toascii(' ') << 16)
|
||||
| ((u32)ossl_toascii('3') << 24);
|
||||
input[2] = ((u32)ossl_toascii('2')) | ((u32)ossl_toascii('-') << 8)
|
||||
| ((u32)ossl_toascii('b') << 16)
|
||||
| ((u32)ossl_toascii('y') << 24);
|
||||
input[3] = ((u32)ossl_toascii('t')) | ((u32)ossl_toascii('e') << 8)
|
||||
| ((u32)ossl_toascii(' ') << 16)
|
||||
| ((u32)ossl_toascii('k') << 24);
|
||||
|
||||
input[4] = key[0];
|
||||
input[5] = key[1];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue