Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
6f44d4d2
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
1 年多 前同步成功
通知
10
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看板
提交
6f44d4d2
编写于
11月 16, 2005
作者:
B
Bodo Möller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
deFUDify: don't require OPENSSL_EC_BIN_PT_COMP
上级
d804f86b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
0 addition
and
141 deletion
+0
-141
crypto/ec/ec2_smpt.c
crypto/ec/ec2_smpt.c
+0
-141
未找到文件。
crypto/ec/ec2_smpt.c
已删除
100644 → 0
浏览文件 @
d804f86b
/* crypto/ec/ec2_smpt.c */
/* This code was originally written by Douglas Stebila
* <dstebila@student.math.uwaterloo.ca> for the OpenSSL project.
*/
/* ====================================================================
* Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. All advertising materials mentioning features or use of this
* software must display the following acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@openssl.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
/* Calaculates and sets the affine coordinates of an EC_POINT from the given
* compressed coordinates. Uses algorithm 2.3.4 of SEC 1.
* Note that the simple implementation only uses affine coordinates.
*
* This algorithm is patented by Certicom Corp. under US Patent 6,141,420
* (for licensing information, contact licensing@certicom.com).
* This function is disabled by default and can be enabled by defining the
* preprocessor macro OPENSSL_EC_BIN_PT_COMP at Configure-time.
*/
int
ec_GF2m_simple_set_compressed_coordinates
(
const
EC_GROUP
*
group
,
EC_POINT
*
point
,
const
BIGNUM
*
x_
,
int
y_bit
,
BN_CTX
*
ctx
)
{
#ifndef OPENSSL_EC_BIN_PT_COMP
ECerr
(
EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES
,
ERR_R_DISABLED
);
return
0
;
#else
BN_CTX
*
new_ctx
=
NULL
;
BIGNUM
*
tmp
,
*
x
,
*
y
,
*
z
;
int
ret
=
0
,
z0
;
/* clear error queue */
ERR_clear_error
();
if
(
ctx
==
NULL
)
{
ctx
=
new_ctx
=
BN_CTX_new
();
if
(
ctx
==
NULL
)
return
0
;
}
y_bit
=
(
y_bit
!=
0
)
?
1
:
0
;
BN_CTX_start
(
ctx
);
tmp
=
BN_CTX_get
(
ctx
);
x
=
BN_CTX_get
(
ctx
);
y
=
BN_CTX_get
(
ctx
);
z
=
BN_CTX_get
(
ctx
);
if
(
z
==
NULL
)
goto
err
;
if
(
!
BN_GF2m_mod_arr
(
x
,
x_
,
group
->
poly
))
goto
err
;
if
(
BN_is_zero
(
x
))
{
if
(
!
BN_GF2m_mod_sqrt_arr
(
y
,
&
group
->
b
,
group
->
poly
,
ctx
))
goto
err
;
}
else
{
if
(
!
group
->
meth
->
field_sqr
(
group
,
tmp
,
x
,
ctx
))
goto
err
;
if
(
!
group
->
meth
->
field_div
(
group
,
tmp
,
&
group
->
b
,
tmp
,
ctx
))
goto
err
;
if
(
!
BN_GF2m_add
(
tmp
,
&
group
->
a
,
tmp
))
goto
err
;
if
(
!
BN_GF2m_add
(
tmp
,
x
,
tmp
))
goto
err
;
if
(
!
BN_GF2m_mod_solve_quad_arr
(
z
,
tmp
,
group
->
poly
,
ctx
))
{
unsigned
long
err
=
ERR_peek_last_error
();
if
(
ERR_GET_LIB
(
err
)
==
ERR_LIB_BN
&&
ERR_GET_REASON
(
err
)
==
BN_R_NO_SOLUTION
)
{
ERR_clear_error
();
ECerr
(
EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES
,
EC_R_INVALID_COMPRESSED_POINT
);
}
else
ECerr
(
EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES
,
ERR_R_BN_LIB
);
goto
err
;
}
z0
=
(
BN_is_odd
(
z
))
?
1
:
0
;
if
(
!
group
->
meth
->
field_mul
(
group
,
y
,
x
,
z
,
ctx
))
goto
err
;
if
(
z0
!=
y_bit
)
{
if
(
!
BN_GF2m_add
(
y
,
y
,
x
))
goto
err
;
}
}
if
(
!
EC_POINT_set_affine_coordinates_GF2m
(
group
,
point
,
x
,
y
,
ctx
))
goto
err
;
ret
=
1
;
err:
BN_CTX_end
(
ctx
);
if
(
new_ctx
!=
NULL
)
BN_CTX_free
(
new_ctx
);
return
ret
;
#endif
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录