Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
dec95a12
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
1 年多 前同步成功
通知
9
Star
18
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
dec95a12
编写于
4月 06, 2009
作者:
A
Andy Polyakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Camellia update: make it respect NO_[INLINE_]ASM and typo in assembler.
上级
a79b668b
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
25 addition
and
28 deletion
+25
-28
crypto/camellia/asm/cmll-x86.pl
crypto/camellia/asm/cmll-x86.pl
+1
-1
crypto/camellia/asm/cmll-x86_64.pl
crypto/camellia/asm/cmll-x86_64.pl
+1
-1
crypto/camellia/camellia.c
crypto/camellia/camellia.c
+23
-2
crypto/camellia/cmll_locl.h
crypto/camellia/cmll_locl.h
+0
-24
未找到文件。
crypto/camellia/asm/cmll-x86.pl
浏览文件 @
dec95a12
...
@@ -1133,6 +1133,6 @@ my ($s0,$s1,$s2,$s3) = @T;
...
@@ -1133,6 +1133,6 @@ my ($s0,$s1,$s2,$s3) = @T;
&function_end
("
Camellia_cbc_encrypt
");
&function_end
("
Camellia_cbc_encrypt
");
}
}
&asciz
("
Camellia for x86 by <appro
@openssl
.org>
");
&asciz
("
Camellia for x86 by <appro
\
@
openssl.org>
");
&asm_finish
();
&asm_finish
();
crypto/camellia/asm/cmll-x86_64.pl
浏览文件 @
dec95a12
...
@@ -859,7 +859,7 @@ Camellia_cbc_encrypt:
...
@@ -859,7 +859,7 @@ Camellia_cbc_encrypt:
ret
ret
.size Camellia_cbc_encrypt,.-Camellia_cbc_encrypt
.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>"
___
___
}
}
...
...
crypto/camellia/camellia.c
浏览文件 @
dec95a12
...
@@ -91,10 +91,24 @@
...
@@ -91,10 +91,24 @@
# if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64))
# if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64))
# define RightRotate(x, s) _lrotr(x, s)
# define RightRotate(x, s) _lrotr(x, s)
# define LeftRotate(x, s) _lrotl(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
# elif defined(__GNUC__) && __GNUC__>=2
# if defined(__i386) || defined(__x86_64)
# 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 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; })
# 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) || \
# elif defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \
defined(__powerpc) || defined(__ppc__) || defined(__powerpc64__)
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; })
# define LeftRotate(x,s) ({u32 ret; asm ("rlwinm %0,%1,%2,0,31":"=r"(ret):"r"(x),"I"(s)); ret; })
...
@@ -102,13 +116,20 @@
...
@@ -102,13 +116,20 @@
# elif defined(__s390x__)
# elif defined(__s390x__)
# define LeftRotate(x,s) ({u32 ret; asm ("rll %0,%1,%2":"=r"(ret):"r"(x),"I"(s)); ret; })
# 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 RightRotate(x,s) LeftRotate(x,(32-s))
# define GETU32(p) (*(u32 *)(p))
# define PUTU32(p,v) (*(u32 *)(p)=(v))
# endif
# endif
# endif
# endif
#endif
#endif
#if !defined(RightRotate) && !defined(LeftRotate)
#if !defined(RightRotate) && !defined(LeftRotate)
#define RightRotate(x, s) ( ((x) >> (s)) + ((x) << (32 - s)) )
# define RightRotate(x, s) ( ((x) >> (s)) + ((x) << (32 - s)) )
#define LeftRotate(x, s) ( ((x) << (s)) + ((x) >> (32 - s)) )
# 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
#endif
/* S-box data */
/* S-box data */
...
...
crypto/camellia/cmll_locl.h
浏览文件 @
dec95a12
...
@@ -71,30 +71,6 @@
...
@@ -71,30 +71,6 @@
typedef
unsigned
int
u32
;
typedef
unsigned
int
u32
;
typedef
unsigned
char
u8
;
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
);
int
Camellia_Ekeygen
(
int
keyBitLength
,
const
u8
*
rawKey
,
KEY_TABLE_TYPE
keyTable
);
void
Camellia_EncryptBlock_Rounds
(
int
grandRounds
,
const
u8
plaintext
[],
void
Camellia_EncryptBlock_Rounds
(
int
grandRounds
,
const
u8
plaintext
[],
const
KEY_TABLE_TYPE
keyTable
,
u8
ciphertext
[]);
const
KEY_TABLE_TYPE
keyTable
,
u8
ciphertext
[]);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录