Loading crypto/camellia/asm/cmll-x86.pl +1 −1 Original line number Diff line number Diff line Loading @@ -1133,6 +1133,6 @@ my ($s0,$s1,$s2,$s3) = @T; &function_end("Camellia_cbc_encrypt"); } &asciz("Camellia for x86 by <appro@openssl.org>"); &asciz("Camellia for x86 by <appro\@openssl.org>"); &asm_finish(); crypto/camellia/asm/cmll-x86_64.pl +1 −1 Original line number Diff line number Diff line Loading @@ -859,7 +859,7 @@ Camellia_cbc_encrypt: ret .size Camellia_cbc_encrypt,.-Camellia_cbc_encrypt .asciz "Camellia for x86_64 by <appro@openssl.org>" .asciz "Camellia for x86_64 by <appro\@openssl.org>" ___ } Loading crypto/camellia/camellia.c +23 −2 Original line number Diff line number Diff line Loading @@ -91,10 +91,24 @@ # if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64)) # define RightRotate(x, s) _lrotr(x, s) # define LeftRotate(x, s) _lrotl(x, s) # if _MSC_VER >= 1400 # define SWAP(x) _byteswap_ulong(x) # else # define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00) # endif # define GETU32(p) SWAP(*((u32 *)(p))) # define PUTU32(p,v) (*((u32 *)(p)) = SWAP((v))) # elif defined(__GNUC__) && __GNUC__>=2 # if defined(__i386) || defined(__x86_64) # define RightRotate(x,s) ({u32 ret; asm ("rorl %1,%0":"=r"(ret):"I"(s),"0"(x):"cc"); ret; }) # define LeftRotate(x,s) ({u32 ret; asm ("roll %1,%0":"=r"(ret):"I"(s),"0"(x):"cc"); ret; }) # if defined(B_ENDIAN) /* stratus.com does it */ # define GETU32(p) (*(u32 *)(p)) # define PUTU32(p,v) (*(u32 *)(p)=(v)) # else # define GETU32(p) ({u32 r=*(const u32 *)(p); asm("bswapl %0":"=r"(r):"0"(r)); r; }) # define PUTU32(p,v) ({u32 r=(v); asm("bswapl %0":"=r"(r):"0"(r)); *(u32 *)(p)=r; }) # endif # elif defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \ defined(__powerpc) || defined(__ppc__) || defined(__powerpc64__) # define LeftRotate(x,s) ({u32 ret; asm ("rlwinm %0,%1,%2,0,31":"=r"(ret):"r"(x),"I"(s)); ret; }) Loading @@ -102,6 +116,8 @@ # elif defined(__s390x__) # define LeftRotate(x,s) ({u32 ret; asm ("rll %0,%1,%2":"=r"(ret):"r"(x),"I"(s)); ret; }) # define RightRotate(x,s) LeftRotate(x,(32-s)) # define GETU32(p) (*(u32 *)(p)) # define PUTU32(p,v) (*(u32 *)(p)=(v)) # endif # endif #endif Loading @@ -111,6 +127,11 @@ # define LeftRotate(x, s) ( ((x) << (s)) + ((x) >> (32 - s)) ) #endif #if !defined(GETU32) && !defined(PUTU32) # define GETU32(p) (((u32)(p)[0] << 24) ^ ((u32)(p)[1] << 16) ^ ((u32)(p)[2] << 8) ^ ((u32)(p)[3])) # define PUTU32(p,v) ((p)[0] = (u8)((v) >> 24), (p)[1] = (u8)((v) >> 16), (p)[2] = (u8)((v) >> 8), (p)[3] = (u8)(v)) #endif /* S-box data */ #define SBOX1_1110 Camellia_SBOX[0] #define SBOX4_4404 Camellia_SBOX[1] Loading crypto/camellia/cmll_locl.h +0 −24 Original line number Diff line number Diff line Loading @@ -71,30 +71,6 @@ typedef unsigned int u32; typedef unsigned char u8; #if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64)) # if _MSC_VER >= 1400 # define SWAP(x) _byteswap_ulong(x) # else # define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00) # endif # define GETU32(p) SWAP(*((u32 *)(p))) # define PUTU32(p,v) (*((u32 *)(p)) = SWAP((v))) #elif defined(__GNUC__) && __GNUC__>=2 && (defined(__i386) || defined(__x86_64)) && !defined(PEDANTIC) # if defined(B_ENDIAN) /* stratus.com does it */ # define GETU32(p) (*(u32 *)(p)) # define PUTU32(p,v) (*(u32 *)(p)=(v)) # else # define GETU32(p) ({u32 r=*(const u32 *)(p); asm("bswapl %0":"=r"(r):"0"(r)); r; }) # define PUTU32(p,v) ({u32 r=(v); asm("bswapl %0":"=r"(r):"0"(r)); *(u32 *)(p)=r; }) # endif #elif defined(__s390__) || defined(__s390x__) # define GETU32(p) (*(u32 *)(p)) # define PUTU32(p,v) (*(u32 *)(p)=(v)) #else # define GETU32(p) (((u32)(p)[0] << 24) ^ ((u32)(p)[1] << 16) ^ ((u32)(p)[2] << 8) ^ ((u32)(p)[3])) # define PUTU32(p,v) ((p)[0] = (u8)((v) >> 24), (p)[1] = (u8)((v) >> 16), (p)[2] = (u8)((v) >> 8), (p)[3] = (u8)(v)) #endif int Camellia_Ekeygen(int keyBitLength, const u8 *rawKey, KEY_TABLE_TYPE keyTable); void Camellia_EncryptBlock_Rounds(int grandRounds, const u8 plaintext[], const KEY_TABLE_TYPE keyTable, u8 ciphertext[]); Loading Loading
crypto/camellia/asm/cmll-x86.pl +1 −1 Original line number Diff line number Diff line Loading @@ -1133,6 +1133,6 @@ my ($s0,$s1,$s2,$s3) = @T; &function_end("Camellia_cbc_encrypt"); } &asciz("Camellia for x86 by <appro@openssl.org>"); &asciz("Camellia for x86 by <appro\@openssl.org>"); &asm_finish();
crypto/camellia/asm/cmll-x86_64.pl +1 −1 Original line number Diff line number Diff line Loading @@ -859,7 +859,7 @@ Camellia_cbc_encrypt: ret .size Camellia_cbc_encrypt,.-Camellia_cbc_encrypt .asciz "Camellia for x86_64 by <appro@openssl.org>" .asciz "Camellia for x86_64 by <appro\@openssl.org>" ___ } Loading
crypto/camellia/camellia.c +23 −2 Original line number Diff line number Diff line Loading @@ -91,10 +91,24 @@ # if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64)) # define RightRotate(x, s) _lrotr(x, s) # define LeftRotate(x, s) _lrotl(x, s) # if _MSC_VER >= 1400 # define SWAP(x) _byteswap_ulong(x) # else # define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00) # endif # define GETU32(p) SWAP(*((u32 *)(p))) # define PUTU32(p,v) (*((u32 *)(p)) = SWAP((v))) # elif defined(__GNUC__) && __GNUC__>=2 # if defined(__i386) || defined(__x86_64) # define RightRotate(x,s) ({u32 ret; asm ("rorl %1,%0":"=r"(ret):"I"(s),"0"(x):"cc"); ret; }) # define LeftRotate(x,s) ({u32 ret; asm ("roll %1,%0":"=r"(ret):"I"(s),"0"(x):"cc"); ret; }) # if defined(B_ENDIAN) /* stratus.com does it */ # define GETU32(p) (*(u32 *)(p)) # define PUTU32(p,v) (*(u32 *)(p)=(v)) # else # define GETU32(p) ({u32 r=*(const u32 *)(p); asm("bswapl %0":"=r"(r):"0"(r)); r; }) # define PUTU32(p,v) ({u32 r=(v); asm("bswapl %0":"=r"(r):"0"(r)); *(u32 *)(p)=r; }) # endif # elif defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \ defined(__powerpc) || defined(__ppc__) || defined(__powerpc64__) # define LeftRotate(x,s) ({u32 ret; asm ("rlwinm %0,%1,%2,0,31":"=r"(ret):"r"(x),"I"(s)); ret; }) Loading @@ -102,6 +116,8 @@ # elif defined(__s390x__) # define LeftRotate(x,s) ({u32 ret; asm ("rll %0,%1,%2":"=r"(ret):"r"(x),"I"(s)); ret; }) # define RightRotate(x,s) LeftRotate(x,(32-s)) # define GETU32(p) (*(u32 *)(p)) # define PUTU32(p,v) (*(u32 *)(p)=(v)) # endif # endif #endif Loading @@ -111,6 +127,11 @@ # define LeftRotate(x, s) ( ((x) << (s)) + ((x) >> (32 - s)) ) #endif #if !defined(GETU32) && !defined(PUTU32) # define GETU32(p) (((u32)(p)[0] << 24) ^ ((u32)(p)[1] << 16) ^ ((u32)(p)[2] << 8) ^ ((u32)(p)[3])) # define PUTU32(p,v) ((p)[0] = (u8)((v) >> 24), (p)[1] = (u8)((v) >> 16), (p)[2] = (u8)((v) >> 8), (p)[3] = (u8)(v)) #endif /* S-box data */ #define SBOX1_1110 Camellia_SBOX[0] #define SBOX4_4404 Camellia_SBOX[1] Loading
crypto/camellia/cmll_locl.h +0 −24 Original line number Diff line number Diff line Loading @@ -71,30 +71,6 @@ typedef unsigned int u32; typedef unsigned char u8; #if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64)) # if _MSC_VER >= 1400 # define SWAP(x) _byteswap_ulong(x) # else # define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00) # endif # define GETU32(p) SWAP(*((u32 *)(p))) # define PUTU32(p,v) (*((u32 *)(p)) = SWAP((v))) #elif defined(__GNUC__) && __GNUC__>=2 && (defined(__i386) || defined(__x86_64)) && !defined(PEDANTIC) # if defined(B_ENDIAN) /* stratus.com does it */ # define GETU32(p) (*(u32 *)(p)) # define PUTU32(p,v) (*(u32 *)(p)=(v)) # else # define GETU32(p) ({u32 r=*(const u32 *)(p); asm("bswapl %0":"=r"(r):"0"(r)); r; }) # define PUTU32(p,v) ({u32 r=(v); asm("bswapl %0":"=r"(r):"0"(r)); *(u32 *)(p)=r; }) # endif #elif defined(__s390__) || defined(__s390x__) # define GETU32(p) (*(u32 *)(p)) # define PUTU32(p,v) (*(u32 *)(p)=(v)) #else # define GETU32(p) (((u32)(p)[0] << 24) ^ ((u32)(p)[1] << 16) ^ ((u32)(p)[2] << 8) ^ ((u32)(p)[3])) # define PUTU32(p,v) ((p)[0] = (u8)((v) >> 24), (p)[1] = (u8)((v) >> 16), (p)[2] = (u8)((v) >> 8), (p)[3] = (u8)(v)) #endif int Camellia_Ekeygen(int keyBitLength, const u8 *rawKey, KEY_TABLE_TYPE keyTable); void Camellia_EncryptBlock_Rounds(int grandRounds, const u8 plaintext[], const KEY_TABLE_TYPE keyTable, u8 ciphertext[]); Loading