Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
ded18639
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ded18639
编写于
2月 20, 2014
作者:
D
Dr. Stephen Henson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Move CT viewer extension code to crypto/x509v3
上级
4cfeb00b
变更
9
显示空白变更内容
内联
并排
Showing
9 changed file
with
210 addition
and
141 deletion
+210
-141
apps/ocsp.c
apps/ocsp.c
+0
-2
apps/s_client.c
apps/s_client.c
+0
-3
apps/x509.c
apps/x509.c
+0
-4
crypto/crypto-lib.com
crypto/crypto-lib.com
+1
-1
crypto/x509v3/Makefile
crypto/x509v3/Makefile
+2
-2
crypto/x509v3/ext_dat.h
crypto/x509v3/ext_dat.h
+3
-0
crypto/x509v3/v3_scts.c
crypto/x509v3/v3_scts.c
+204
-0
ssl/ssl.h
ssl/ssl.h
+0
-3
ssl/t1_lib.c
ssl/t1_lib.c
+0
-126
未找到文件。
apps/ocsp.c
浏览文件 @
ded18639
...
...
@@ -174,7 +174,6 @@ int MAIN(int argc, char **argv)
goto
end
;
SSL_load_error_strings
();
OpenSSL_add_ssl_algorithms
();
X509V3_EXT_add_rfc6962
();
args
=
argv
+
1
;
reqnames
=
sk_OPENSSL_STRING_new_null
();
ids
=
sk_OCSP_CERTID_new_null
();
...
...
@@ -971,7 +970,6 @@ end:
OPENSSL_free
(
path
);
}
X509V3_EXT_cleanup
();
OPENSSL_EXIT
(
ret
);
}
...
...
apps/s_client.c
浏览文件 @
ded18639
...
...
@@ -713,8 +713,6 @@ static char *jpake_secret = NULL;
c_msg
=
0
;
c_showcerts
=
0
;
X509V3_EXT_add_rfc6962
();
if
(
bio_err
==
NULL
)
bio_err
=
BIO_new_fp
(
stderr
,
BIO_NOCLOSE
);
...
...
@@ -2195,7 +2193,6 @@ end:
BIO_free
(
bio_c_msg
);
bio_c_msg
=
NULL
;
}
X509V3_EXT_cleanup
();
apps_shutdown
();
OPENSSL_EXIT
(
ret
);
}
...
...
apps/x509.c
浏览文件 @
ded18639
...
...
@@ -73,7 +73,6 @@
#include <openssl/x509v3.h>
#include <openssl/objects.h>
#include <openssl/pem.h>
#include <openssl/ssl.h>
#ifndef OPENSSL_NO_RSA
#include <openssl/rsa.h>
#endif
...
...
@@ -225,8 +224,6 @@ int MAIN(int argc, char **argv)
apps_startup
();
X509V3_EXT_add_rfc6962
();
if
(
bio_err
==
NULL
)
bio_err
=
BIO_new_fp
(
stderr
,
BIO_NOCLOSE
);
...
...
@@ -1158,7 +1155,6 @@ end:
sk_ASN1_OBJECT_pop_free
(
trust
,
ASN1_OBJECT_free
);
sk_ASN1_OBJECT_pop_free
(
reject
,
ASN1_OBJECT_free
);
if
(
passin
)
OPENSSL_free
(
passin
);
X509V3_EXT_cleanup
();
apps_shutdown
();
OPENSSL_EXIT
(
ret
);
}
...
...
crypto/crypto-lib.com
浏览文件 @
ded18639
...
...
@@ -321,7 +321,7 @@ $ LIB_X509V3 = "v3_bcons,v3_bitst,v3_conf,v3_extku,v3_ia5,v3_lib,"+ -
"v3_int,v3_enum,v3_sxnet,v3_cpols,v3_crld,v3_purp,v3_info,"+ -
"v3_ocsp,v3_akeya,v3_pmaps,v3_pcons,v3_ncons,v3_pcia,v3_pci,"+ -
"pcy_cache,pcy_node,pcy_data,pcy_map,pcy_tree,pcy_lib,"+ -
"v3_asid,v3_addr"
"v3_asid,v3_addr
,v3_scts
"
$ LIB_CONF = "conf_err,conf_lib,conf_api,conf_def,conf_mod,conf_mall,conf_sap"
$ LIB_TXT_DB = "txt_db"
$ LIB_PKCS7 = "pk7_asn1,pk7_lib,pkcs7err,pk7_doit,pk7_smime,pk7_attr,"+ -
...
...
crypto/x509v3/Makefile
浏览文件 @
ded18639
...
...
@@ -22,13 +22,13 @@ v3_prn.c v3_utl.c v3err.c v3_genn.c v3_alt.c v3_skey.c v3_akey.c v3_pku.c \
v3_int.c v3_enum.c v3_sxnet.c v3_cpols.c v3_crld.c v3_purp.c v3_info.c
\
v3_ocsp.c v3_akeya.c v3_pmaps.c v3_pcons.c v3_ncons.c v3_pcia.c v3_pci.c
\
pcy_cache.c pcy_node.c pcy_data.c pcy_map.c pcy_tree.c pcy_lib.c
\
v3_asid.c v3_addr.c
v3_asid.c v3_addr.c
v3_scts.c
LIBOBJ
=
v3_bcons.o v3_bitst.o v3_conf.o v3_extku.o v3_ia5.o v3_lib.o
\
v3_prn.o v3_utl.o v3err.o v3_genn.o v3_alt.o v3_skey.o v3_akey.o v3_pku.o
\
v3_int.o v3_enum.o v3_sxnet.o v3_cpols.o v3_crld.o v3_purp.o v3_info.o
\
v3_ocsp.o v3_akeya.o v3_pmaps.o v3_pcons.o v3_ncons.o v3_pcia.o v3_pci.o
\
pcy_cache.o pcy_node.o pcy_data.o pcy_map.o pcy_tree.o pcy_lib.o
\
v3_asid.o v3_addr.o
v3_asid.o v3_addr.o
v3_scts.o
SRC
=
$(LIBSRC)
...
...
crypto/x509v3/ext_dat.h
浏览文件 @
ded18639
...
...
@@ -68,6 +68,7 @@ extern X509V3_EXT_METHOD v3_crl_hold, v3_pci;
extern
X509V3_EXT_METHOD
v3_policy_mappings
,
v3_policy_constraints
;
extern
X509V3_EXT_METHOD
v3_name_constraints
,
v3_inhibit_anyp
,
v3_idp
;
extern
X509V3_EXT_METHOD
v3_addr
,
v3_asid
;
extern
X509V3_EXT_METHOD
v3_ct_scts
[];
/* This table will be searched using OBJ_bsearch so it *must* kept in
* order of the ext_nid values.
...
...
@@ -124,6 +125,8 @@ static const X509V3_EXT_METHOD *standard_exts[] = {
&
v3_idp
,
&
v3_alt
[
2
],
&
v3_freshest_crl
,
&
v3_ct_scts
[
0
],
&
v3_ct_scts
[
1
],
};
/* Number of standard extensions */
...
...
crypto/x509v3/v3_scts.c
0 → 100644
浏览文件 @
ded18639
/* v3_scts.c */
/* Written by Rob Stradling (rob@comodo.com) for the OpenSSL project 2014.
*/
/* ====================================================================
* Copyright (c) 2014 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
* licensing@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).
*
*/
#include <stdio.h>
#include "cryptlib.h"
#include <openssl/asn1.h>
#include <openssl/x509v3.h>
#include <openssl/bn.h>
#include "../ssl/ssl_locl.h"
static
int
i2r_scts
(
X509V3_EXT_METHOD
*
method
,
ASN1_OCTET_STRING
*
oct
,
BIO
*
out
,
int
indent
);
const
X509V3_EXT_METHOD
v3_ct_scts
[]
=
{
{
NID_ct_precert_scts
,
0
,
ASN1_ITEM_ref
(
ASN1_OCTET_STRING
),
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
(
X509V3_EXT_I2R
)
i2r_scts
,
NULL
,
NULL
},
{
NID_ct_cert_scts
,
0
,
ASN1_ITEM_ref
(
ASN1_OCTET_STRING
),
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
(
X509V3_EXT_I2R
)
i2r_scts
,
NULL
,
NULL
},
};
static
void
tls12_signature_print
(
BIO
*
out
,
const
unsigned
char
*
data
)
{
int
nid
=
NID_undef
;
/* RFC6962 only permits two signature algorithms */
if
(
data
[
0
]
==
TLSEXT_hash_sha256
)
{
if
(
data
[
1
]
==
TLSEXT_signature_rsa
)
nid
=
NID_sha256WithRSAEncryption
;
else
if
(
data
[
1
]
==
TLSEXT_signature_ecdsa
)
nid
=
NID_ecdsa_with_SHA256
;
}
if
(
nid
==
NID_undef
)
BIO_printf
(
out
,
"%02X%02X"
,
data
[
0
],
data
[
1
]);
else
BIO_printf
(
out
,
"%s"
,
OBJ_nid2ln
(
nid
));
}
static
void
timestamp_print
(
BIO
*
out
,
BN_ULLONG
timestamp
)
{
ASN1_GENERALIZEDTIME
*
gen
;
char
genstr
[
20
];
gen
=
ASN1_GENERALIZEDTIME_new
();
ASN1_GENERALIZEDTIME_adj
(
gen
,
(
time_t
)
0
,
timestamp
/
86400000
,
(
timestamp
%
86400000
)
/
1000
);
/* Note GeneralizedTime from ASN1_GENERALIZETIME_adj is always 15
* characters long with a final Z. Update it with fractional seconds.
*/
BIO_snprintf
(
genstr
,
sizeof
(
genstr
),
"%.14s.%03dZ"
,
ASN1_STRING_data
(
gen
),
(
unsigned
int
)(
timestamp
%
1000
));
ASN1_GENERALIZEDTIME_set_string
(
gen
,
genstr
);
ASN1_GENERALIZEDTIME_print
(
out
,
gen
);
ASN1_GENERALIZEDTIME_free
(
gen
);
}
static
int
i2r_scts
(
X509V3_EXT_METHOD
*
method
,
ASN1_OCTET_STRING
*
oct
,
BIO
*
out
,
int
indent
)
{
BN_ULLONG
timestamp
;
unsigned
char
*
data
=
oct
->
data
;
unsigned
short
listlen
,
sctlen
=
0
,
fieldlen
;
if
(
oct
->
length
<
2
)
return
0
;
n2s
(
data
,
listlen
);
if
(
listlen
!=
oct
->
length
-
2
)
return
0
;
while
(
listlen
>
0
)
{
if
(
listlen
<
2
)
return
0
;
n2s
(
data
,
sctlen
);
listlen
-=
2
;
if
((
sctlen
<
1
)
||
(
sctlen
>
listlen
))
return
0
;
listlen
-=
sctlen
;
BIO_printf
(
out
,
"%*sSigned Certificate Timestamp:"
,
indent
,
""
);
if
(
*
data
==
0
)
/* SCT v1 */
{
/* Fixed-length header:
* struct {
* (1 byte) Version sct_version;
* (32 bytes) LogID id;
* (8 bytes) uint64 timestamp;
* (2 bytes + ?) CtExtensions extensions;
*/
if
(
sctlen
<
43
)
return
0
;
sctlen
-=
43
;
BIO_printf
(
out
,
"
\n
%*sVersion : v1(0)"
,
indent
+
4
,
""
);
BIO_printf
(
out
,
"
\n
%*sLog ID : "
,
indent
+
4
,
""
);
BIO_hex_string
(
out
,
indent
+
16
,
16
,
data
+
1
,
32
);
data
+=
33
;
n2l8
(
data
,
timestamp
);
BIO_printf
(
out
,
"
\n
%*sTimestamp : "
,
indent
+
4
,
""
);
timestamp_print
(
out
,
timestamp
);
n2s
(
data
,
fieldlen
);
if
(
sctlen
<
fieldlen
)
return
0
;
sctlen
-=
fieldlen
;
BIO_printf
(
out
,
"
\n
%*sExtensions: "
,
indent
+
4
,
""
);
if
(
fieldlen
==
0
)
BIO_printf
(
out
,
"none"
);
else
BIO_hex_string
(
out
,
indent
+
16
,
16
,
data
,
fieldlen
);
data
+=
fieldlen
;
/* digitally-signed struct header:
* (1 byte) Hash algorithm
* (1 byte) Signature algorithm
* (2 bytes + ?) Signature
*/
if
(
sctlen
<
4
)
return
0
;
sctlen
-=
4
;
BIO_printf
(
out
,
"
\n
%*sSignature : "
,
indent
+
4
,
""
);
tls12_signature_print
(
out
,
data
);
data
+=
2
;
n2s
(
data
,
fieldlen
);
if
(
sctlen
!=
fieldlen
)
return
0
;
BIO_printf
(
out
,
"
\n
%*s "
,
indent
+
4
,
""
);
BIO_hex_string
(
out
,
indent
+
16
,
16
,
data
,
fieldlen
);
if
(
listlen
>
0
)
BIO_printf
(
out
,
"
\n
"
);
data
+=
fieldlen
;
}
}
return
1
;
}
ssl/ssl.h
浏览文件 @
ded18639
...
...
@@ -2557,9 +2557,6 @@ void SSL_trace(int write_p, int version, int content_type,
const
char
*
SSL_CIPHER_standard_name
(
const
SSL_CIPHER
*
c
);
#endif
/* RFC6962 Signed Certificate Timestamp List X.509 extension parser */
int
X509V3_EXT_add_rfc6962
(
void
);
/* BEGIN ERROR CODES */
/* The following lines are auto generated by the script mkerr.pl. Any changes
* made after this point may be overwritten when the script is next run.
...
...
ssl/t1_lib.c
浏览文件 @
ded18639
...
...
@@ -110,9 +110,6 @@
*/
#include <stdio.h>
#include <time.h>
#include <openssl/bio.h>
#include <openssl/bn.h>
#include <openssl/objects.h>
#include <openssl/evp.h>
#include <openssl/hmac.h>
...
...
@@ -4435,126 +4432,3 @@ int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain)
}
#endif
/* RFC6962 Signed Certificate Timestamp List X.509 extension parser */
static
int
i2r_sctlist
(
X509V3_EXT_METHOD
*
method
,
ASN1_OCTET_STRING
*
oct
,
BIO
*
out
,
int
indent
)
{
BN_ULLONG
timestamp
;
struct
tm
tm1
;
time_t
unix_epoch
=
0
;
unsigned
char
*
data
=
oct
->
data
;
char
month
[
4
];
unsigned
short
listlen
,
sctlen
=
0
,
fieldlen
;
int
signhash_nid
;
if
(
oct
->
length
<
2
)
return
0
;
n2s
(
data
,
listlen
);
if
(
listlen
!=
oct
->
length
-
2
)
return
0
;
while
(
listlen
>
0
)
{
if
(
listlen
<
2
)
return
0
;
n2s
(
data
,
sctlen
);
listlen
-=
2
;
if
((
sctlen
<
1
)
||
(
sctlen
>
listlen
))
return
0
;
listlen
-=
sctlen
;
BIO_printf
(
out
,
"%*sSigned Certificate Timestamp:"
,
indent
,
""
);
if
(
*
data
==
0
)
/* SCT v1 */
{
/* Fixed-length header:
* struct {
* (1 byte) Version sct_version;
* (32 bytes) LogID id;
* (8 bytes) uint64 timestamp;
* (2 bytes + ?) CtExtensions extensions;
*/
if
(
sctlen
<
43
)
return
0
;
sctlen
-=
43
;
BIO_printf
(
out
,
"
\n
%*sVersion : v1(0)"
,
indent
+
4
,
""
);
BIO_printf
(
out
,
"
\n
%*sLog ID : "
,
indent
+
4
,
""
);
BIO_hex_string
(
out
,
indent
+
16
,
16
,
data
+
1
,
32
);
data
+=
33
;
n2l8
(
data
,
timestamp
);
OPENSSL_gmtime
(
&
unix_epoch
,
&
tm1
);
OPENSSL_gmtime_adj
(
&
tm1
,
timestamp
/
86400000
,
(
timestamp
%
86400000
)
/
1000
);
strftime
(
month
,
4
,
"%b"
,
&
tm1
);
BIO_printf
(
out
,
"
\n
%*sTimestamp : "
,
indent
+
4
,
""
);
BIO_printf
(
out
,
"%s %2d %02d:%02d:%02d.%03u %d UTC"
,
month
,
tm1
.
tm_mday
,
tm1
.
tm_hour
,
tm1
.
tm_min
,
tm1
.
tm_sec
,
(
unsigned
int
)(
timestamp
%
1000
),
tm1
.
tm_year
+
1900
);
n2s
(
data
,
fieldlen
);
if
(
sctlen
<
fieldlen
)
return
0
;
sctlen
-=
fieldlen
;
BIO_printf
(
out
,
"
\n
%*sExtensions: "
,
indent
+
4
,
""
);
if
(
fieldlen
==
0
)
BIO_printf
(
out
,
"none"
);
else
BIO_hex_string
(
out
,
indent
+
16
,
16
,
data
,
fieldlen
);
data
+=
fieldlen
;
/* digitally-signed struct header:
* (1 byte) Hash algorithm
* (1 byte) Signature algorithm
* (2 bytes + ?) Signature
*/
if
(
sctlen
<
4
)
return
0
;
sctlen
-=
4
;
tls1_lookup_sigalg
(
NULL
,
NULL
,
&
signhash_nid
,
data
);
data
+=
2
;
n2s
(
data
,
fieldlen
);
if
(
sctlen
!=
fieldlen
)
return
0
;
BIO_printf
(
out
,
"
\n
%*sSignature : "
,
indent
+
4
,
""
);
BIO_printf
(
out
,
"%s"
,
OBJ_nid2ln
(
signhash_nid
));
BIO_printf
(
out
,
"
\n
%*s "
,
indent
+
4
,
""
);
BIO_hex_string
(
out
,
indent
+
16
,
16
,
data
,
fieldlen
);
if
(
listlen
>
0
)
BIO_printf
(
out
,
"
\n
"
);
data
+=
fieldlen
;
}
}
return
1
;
}
static
X509V3_EXT_METHOD
ext_method_ct_precert_scts
=
{
NID_ct_precert_scts
,
0
,
ASN1_ITEM_ref
(
ASN1_OCTET_STRING
),
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
(
X509V3_EXT_I2R
)
i2r_sctlist
,
NULL
,
NULL
};
static
X509V3_EXT_METHOD
ext_method_ct_cert_scts
=
{
NID_ct_cert_scts
,
0
,
ASN1_ITEM_ref
(
ASN1_OCTET_STRING
),
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
(
X509V3_EXT_I2R
)
i2r_sctlist
,
NULL
,
NULL
};
int
X509V3_EXT_add_rfc6962
(
void
)
{
if
(
!
X509V3_EXT_add
(
&
ext_method_ct_precert_scts
))
return
0
;
if
(
!
X509V3_EXT_add
(
&
ext_method_ct_cert_scts
))
return
0
;
return
1
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录