Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
213a75db
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
8 个月 前同步成功
通知
8
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,体验更适合开发者的 AI 搜索 >>
提交
213a75db
编写于
6月 03, 1999
作者:
B
Ben Laurie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make samples compile.
上级
5c0a4865
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
103 addition
and
37 deletion
+103
-37
CHANGES
CHANGES
+3
-0
crypto/pkcs7/Makefile.ssl
crypto/pkcs7/Makefile.ssl
+14
-0
crypto/pkcs7/dec.c
crypto/pkcs7/dec.c
+4
-4
crypto/pkcs7/enc.c
crypto/pkcs7/enc.c
+1
-1
crypto/pkcs7/example.c
crypto/pkcs7/example.c
+11
-17
crypto/pkcs7/example.h
crypto/pkcs7/example.h
+57
-0
crypto/pkcs7/sign.c
crypto/pkcs7/sign.c
+3
-3
crypto/pkcs7/verify.c
crypto/pkcs7/verify.c
+10
-12
未找到文件。
CHANGES
浏览文件 @
213a75db
...
...
@@ -5,6 +5,9 @@
Changes between 0.9.3a and 0.9.4
*) Make S/MIME samples compile (not yet tested).
[Ben Laurie]
*) Additional typesafe stacks.
[Ben Laurie]
...
...
crypto/pkcs7/Makefile.ssl
浏览文件 @
213a75db
...
...
@@ -39,6 +39,20 @@ test:
all
:
lib
testapps
:
enc dec sign verify
enc
:
enc.o lib
$(CC)
$(CFLAGS)
-o
enc enc.o
$(LIB)
dec
:
dec.o lib
$(CC)
$(CFLAGS)
-o
dec dec.o
$(LIB)
sign
:
sign.o lib
$(CC)
$(CFLAGS)
-o
sign sign.o
$(LIB)
verify
:
verify.o example.o lib
$(CC)
$(CFLAGS)
-o
verify verify.o example.o
$(LIB)
lib
:
$(LIBOBJ)
$(AR)
$(LIB)
$(LIBOBJ)
$(RANLIB)
$(LIB)
...
...
crypto/pkcs7/dec.c
浏览文件 @
213a75db
...
...
@@ -71,7 +71,7 @@ int main(argc,argv)
int
argc
;
char
*
argv
[];
{
char
*
keyfile
;
char
*
keyfile
=
NULL
;
BIO
*
in
;
EVP_PKEY
*
pkey
;
X509
*
x509
;
...
...
@@ -83,7 +83,7 @@ char *argv[];
char
buf
[
1024
*
4
];
unsigned
char
*
pp
;
int
i
,
printit
=
0
;
STACK
*
sk
;
STACK
_OF
(
PKCS7_SIGNER_INFO
)
*
sk
;
SSLeay_add_all_algorithms
();
bio_err
=
BIO_new_fp
(
stderr
,
BIO_NOCLOSE
);
...
...
@@ -175,9 +175,9 @@ char *argv[];
/* Ok, first we need to, for each subject entry,
* see if we can verify */
ERR_clear_error
();
for
(
i
=
0
;
i
<
sk_num
(
sk
);
i
++
)
for
(
i
=
0
;
i
<
sk_
PKCS7_SIGNER_INFO_
num
(
sk
);
i
++
)
{
si
=
(
PKCS7_SIGNER_INFO
*
)
sk
_value
(
sk
,
i
);
si
=
sk_PKCS7_SIGNER_INFO
_value
(
sk
,
i
);
i
=
PKCS7_dataVerify
(
cert_store
,
&
cert_ctx
,
p7bio
,
p7
,
si
);
if
(
i
<=
0
)
goto
err
;
...
...
crypto/pkcs7/enc.c
浏览文件 @
213a75db
...
...
@@ -73,7 +73,7 @@ char *argv[];
int
i
;
int
nodetach
=
1
;
char
*
keyfile
=
NULL
;
const
EVP_CIPHER
*
cipher
;
const
EVP_CIPHER
*
cipher
=
NULL
;
SSLeay_add_all_algorithms
();
...
...
crypto/pkcs7/example.c
浏览文件 @
213a75db
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <openssl/pkcs7.h>
#include <openssl/asn1_mac.h>
int
add_signed_time
(
PKCS7_SIGNER_INFO
*
si
)
{
...
...
@@ -18,19 +18,16 @@ int add_signed_time(PKCS7_SIGNER_INFO *si)
ASN1_UTCTIME
*
get_signed_time
(
PKCS7_SIGNER_INFO
*
si
)
{
ASN1_TYPE
*
so
;
ASN1_UTCTIME
*
ut
;
so
=
PKCS7_get_signed_attribute
(
si
,
NID_pkcs9_signingTime
);
if
(
so
->
type
==
V_ASN1_UTCTIME
)
{
ut
=
so
->
value
.
utctime
;
}
return
(
ut
);
return
so
->
value
.
utctime
;
return
NULL
;
}
static
int
signed_string_nid
=
-
1
;
int
add_signed_string
(
PKCS7_SIGNER_INFO
*
si
,
char
*
str
)
void
add_signed_string
(
PKCS7_SIGNER_INFO
*
si
,
char
*
str
)
{
ASN1_OCTET_STRING
*
os
;
...
...
@@ -80,7 +77,7 @@ int add_signed_seq2string(PKCS7_SIGNER_INFO *si, char *str1, char *str2)
unsigned
char
*
p
;
ASN1_OCTET_STRING
*
os1
,
*
os2
;
ASN1_STRING
*
seq
;
char
*
data
;
unsigned
char
*
data
;
int
i
,
total
;
if
(
signed_seq2string_nid
==
-
1
)
...
...
@@ -178,19 +175,16 @@ X509_ATTRIBUTE *create_time(void)
return
(
ret
);
}
ASN1_UTCTIME
*
sk_get_time
(
STACK
*
sk
)
ASN1_UTCTIME
*
sk_get_time
(
STACK
_OF
(
X509_ATTRIBUTE
)
*
sk
)
{
ASN1_TYPE
*
so
;
ASN1_UTCTIME
*
ut
;
PKCS7_SIGNER_INFO
si
;
si
.
auth_attr
=
sk
;
so
=
PKCS7_get_signed_attribute
(
&
si
,
NID_pkcs9_signingTime
);
if
(
so
->
type
==
V_ASN1_UTCTIME
)
{
ut
=
so
->
value
.
utctime
;
}
return
(
ut
);
return
so
->
value
.
utctime
;
return
NULL
;
}
X509_ATTRIBUTE
*
create_string
(
char
*
str
)
...
...
@@ -210,7 +204,7 @@ X509_ATTRIBUTE *create_string(char *str)
return
(
ret
);
}
int
sk_get_string
(
STACK
*
sk
,
char
*
buf
,
int
len
)
int
sk_get_string
(
STACK
_OF
(
X509_ATTRIBUTE
)
*
sk
,
char
*
buf
,
int
len
)
{
ASN1_TYPE
*
so
;
ASN1_OCTET_STRING
*
os
;
...
...
@@ -247,7 +241,7 @@ X509_ATTRIBUTE *add_seq2string(PKCS7_SIGNER_INFO *si, char *str1, char *str2)
ASN1_OCTET_STRING
*
os1
,
*
os2
;
ASN1_STRING
*
seq
;
X509_ATTRIBUTE
*
ret
;
char
*
data
;
unsigned
char
*
data
;
int
i
,
total
;
if
(
signed_seq2string_nid
==
-
1
)
...
...
@@ -280,7 +274,7 @@ X509_ATTRIBUTE *add_seq2string(PKCS7_SIGNER_INFO *si, char *str1, char *str2)
}
/* For this case, I will malloc the return strings */
int
sk_get_seq2string
(
STACK
*
sk
,
char
**
str1
,
char
**
str2
)
int
sk_get_seq2string
(
STACK
_OF
(
X509_ATTRIBUTE
)
*
sk
,
char
**
str1
,
char
**
str2
)
{
ASN1_TYPE
*
so
;
PKCS7_SIGNER_INFO
si
;
...
...
crypto/pkcs7/example.h
0 → 100644
浏览文件 @
213a75db
/* ====================================================================
* Copyright (c) 1999 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).
*
*/
int
add_signed_time
(
PKCS7_SIGNER_INFO
*
si
);
ASN1_UTCTIME
*
get_signed_time
(
PKCS7_SIGNER_INFO
*
si
);
int
get_signed_seq2string
(
PKCS7_SIGNER_INFO
*
si
,
char
**
str1
,
char
**
str2
);
crypto/pkcs7/sign.c
浏览文件 @
213a75db
...
...
@@ -59,20 +59,20 @@
#include <openssl/bio.h>
#include <openssl/x509.h>
#include <openssl/pem.h>
#include <openssl/err.h>
main
(
argc
,
argv
)
int
main
(
argc
,
argv
)
int
argc
;
char
*
argv
[];
{
X509
*
x509
;
EVP_PKEY
*
pkey
;
PKCS7
*
p7
;
PKCS7
*
p7_data
;
PKCS7_SIGNER_INFO
*
si
;
BIO
*
in
;
BIO
*
data
,
*
p7bio
;
char
buf
[
1024
*
4
];
int
i
,
j
;
int
i
;
int
nodetach
=
0
;
EVP_add_digest
(
EVP_md2
());
...
...
crypto/pkcs7/verify.c
浏览文件 @
213a75db
...
...
@@ -56,33 +56,31 @@
* [including the GNU Public Licence.]
*/
#include <stdio.h>
#include <openssl/asn1.h>
#include <openssl/bio.h>
#include <openssl/asn1.h>
#include <openssl/x509.h>
#include <openssl/pem.h>
#include <openssl/err.h>
#include "example.h"
int
verify_callback
(
int
ok
,
X509_STORE_CTX
*
ctx
);
BIO
*
bio_err
=
NULL
;
BIO
*
bio_out
=
NULL
;
main
(
argc
,
argv
)
int
main
(
argc
,
argv
)
int
argc
;
char
*
argv
[];
{
X509
*
x509
,
*
x
;
PKCS7
*
p7
;
PKCS7_SIGNED
*
s
;
PKCS7_SIGNER_INFO
*
si
;
PKCS7_ISSUER_AND_SERIAL
*
ias
;
X509_STORE_CTX
cert_ctx
;
X509_STORE
*
cert_store
=
NULL
;
X509_LOOKUP
*
lookup
=
NULL
;
BIO
*
data
,
*
detached
=
NULL
,
*
p7bio
=
NULL
;
char
buf
[
1024
*
4
];
unsigned
char
*
p
,
*
pp
;
int
i
,
j
,
printit
=
0
;
STACK
*
sk
;
char
*
pp
;
int
i
,
printit
=
0
;
STACK
_OF
(
PKCS7_SIGNER_INFO
)
*
sk
;
bio_err
=
BIO_new_fp
(
stderr
,
BIO_NOCLOSE
);
bio_out
=
BIO_new_fp
(
stdout
,
BIO_NOCLOSE
);
...
...
@@ -92,7 +90,7 @@ char *argv[];
EVP_add_digest
(
EVP_mdc2
());
data
=
BIO_new
(
BIO_s_file
());
again:
pp
=
NULL
;
while
(
argc
>
1
)
{
...
...
@@ -168,12 +166,12 @@ again:
}
/* Ok, first we need to, for each subject entry, see if we can verify */
for
(
i
=
0
;
i
<
sk_num
(
sk
);
i
++
)
for
(
i
=
0
;
i
<
sk_
PKCS7_SIGNER_INFO_
num
(
sk
);
i
++
)
{
ASN1_UTCTIME
*
tm
;
char
*
str1
,
*
str2
;
si
=
(
PKCS7_SIGNER_INFO
*
)
sk
_value
(
sk
,
i
);
si
=
sk_PKCS7_SIGNER_INFO
_value
(
sk
,
i
);
i
=
PKCS7_dataVerify
(
cert_store
,
&
cert_ctx
,
p7bio
,
p7
,
si
);
if
(
i
<=
0
)
goto
err
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录