Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
3e84b6e1
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看板
提交
3e84b6e1
编写于
18年前
作者:
D
Dr. Stephen Henson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
New general public key utility 'pkey'.
上级
d505d1ef
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
295 addition
and
5 deletion
+295
-5
CHANGES
CHANGES
+4
-0
apps/Makefile
apps/Makefile
+5
-5
apps/pkey.c
apps/pkey.c
+284
-0
apps/progs.h
apps/progs.h
+2
-0
未找到文件。
CHANGES
浏览文件 @
3e84b6e1
...
...
@@ -4,6 +4,10 @@
Changes between 0.9.8a and 0.9.9 [xx XXX xxxx]
*) New utility 'pkey'. This is similar to algorithm specific utilities
such as 'rsa', 'dsa' etc except it processes any key type.
[Steve Henson]
*) Transfer public key printing routines to EVP_PKEY_ASN1_METHOD. New
functions EVP_PKEY_print_public(), EVP_PKEY_print_private(),
EVP_PKEY_print_param() to print public key data from an EVP_PKEY
...
...
This diff is collapsed.
Click to expand it.
apps/Makefile
浏览文件 @
3e84b6e1
...
...
@@ -39,7 +39,7 @@ E_EXE= verify asn1pars req dgst dh dhparam enc passwd gendh errstr \
ca crl rsa rsautl dsa dsaparam ec ecparam
\
x509 genrsa gendsa s_server s_client speed
\
s_time version pkcs7 crl2pkcs7 sess_id ciphers nseq pkcs12
\
pkcs8 spkac smime rand engine ocsp prime ts
pkcs8
pkey
spkac smime rand engine ocsp prime ts
PROGS
=
$(PROGRAM)
.c
...
...
@@ -55,16 +55,16 @@ E_OBJ= verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o er
rsa.o rsautl.o dsa.o dsaparam.o ec.o ecparam.o
\
x509.o genrsa.o gendsa.o s_server.o s_client.o speed.o
\
s_time.o
$(A_OBJ)
$(S_OBJ)
$(RAND_OBJ)
version.o sess_id.o
\
ciphers.o nseq.o pkcs12.o pkcs8.o
spkac.o smime.o rand.o engine
.o
\
ocsp.o prime.o ts.o
ciphers.o nseq.o pkcs12.o pkcs8.o
pkey
.o
\
spkac.o smime.o rand.o engine.o
ocsp.o prime.o ts.o
E_SRC
=
verify.c asn1pars.c req.c dgst.c dh.c enc.c passwd.c gendh.c errstr.c ca.c
\
pkcs7.c crl2p7.c crl.c
\
rsa.c rsautl.c dsa.c dsaparam.c ec.c ecparam.c
\
x509.c genrsa.c gendsa.c s_server.c s_client.c speed.c
\
s_time.c
$(A_SRC)
$(S_SRC)
$(RAND_SRC)
version.c sess_id.c
\
ciphers.c nseq.c pkcs12.c pkcs8.c
spkac.c smime.c rand.c engine
.c
\
ocsp.c prime.c ts.c
ciphers.c nseq.c pkcs12.c pkcs8.c
pkey
.c
\
spkac.c smime.c rand.c engine.c
ocsp.c prime.c ts.c
SRC
=
$(E_SRC)
...
...
This diff is collapsed.
Click to expand it.
apps/pkey.c
0 → 100644
浏览文件 @
3e84b6e1
/* pkey.c */
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
* project 2006
*/
/* ====================================================================
* Copyright (c) 2006 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 <string.h>
#include "apps.h"
#include <openssl/pem.h>
#include <openssl/err.h>
#include <openssl/evp.h>
#define PROG pkey_main
int
MAIN
(
int
,
char
**
);
int
MAIN
(
int
argc
,
char
**
argv
)
{
ENGINE
*
e
=
NULL
;
char
**
args
,
*
infile
=
NULL
,
*
outfile
=
NULL
;
char
*
passargin
=
NULL
,
*
passargout
=
NULL
;
BIO
*
in
=
NULL
,
*
out
=
NULL
;
const
EVP_CIPHER
*
cipher
=
NULL
;
int
informat
,
outformat
;
int
pubin
=
0
,
pubout
=
0
,
pubtext
=
0
,
text
=
0
,
noout
=
0
;
EVP_PKEY
*
pkey
=
NULL
;
char
*
passin
=
NULL
,
*
passout
=
NULL
;
int
badarg
=
0
;
#ifndef OPENSSL_NO_ENGINE
char
*
engine
=
NULL
;
#endif
if
(
bio_err
==
NULL
)
bio_err
=
BIO_new_fp
(
stderr
,
BIO_NOCLOSE
);
if
(
!
load_config
(
bio_err
,
NULL
))
goto
end
;
informat
=
FORMAT_PEM
;
outformat
=
FORMAT_PEM
;
ERR_load_crypto_strings
();
OpenSSL_add_all_algorithms
();
args
=
argv
+
1
;
while
(
!
badarg
&&
*
args
&&
*
args
[
0
]
==
'-'
)
{
if
(
!
strcmp
(
*
args
,
"-inform"
))
{
if
(
args
[
1
])
{
args
++
;
informat
=
str2fmt
(
*
args
);
}
else
badarg
=
1
;
}
else
if
(
!
strcmp
(
*
args
,
"-outform"
))
{
if
(
args
[
1
])
{
args
++
;
outformat
=
str2fmt
(
*
args
);
}
else
badarg
=
1
;
}
else
if
(
!
strcmp
(
*
args
,
"-passin"
))
{
if
(
!
args
[
1
])
goto
bad
;
passargin
=
*
(
++
args
);
}
else
if
(
!
strcmp
(
*
args
,
"-passout"
))
{
if
(
!
args
[
1
])
goto
bad
;
passargout
=
*
(
++
args
);
}
#ifndef OPENSSL_NO_ENGINE
else
if
(
strcmp
(
*
args
,
"-engine"
)
==
0
)
{
if
(
!
args
[
1
])
goto
bad
;
engine
=
*
(
++
args
);
}
#endif
else
if
(
!
strcmp
(
*
args
,
"-in"
))
{
if
(
args
[
1
])
{
args
++
;
infile
=
*
args
;
}
else
badarg
=
1
;
}
else
if
(
!
strcmp
(
*
args
,
"-out"
))
{
if
(
args
[
1
])
{
args
++
;
outfile
=
*
args
;
}
else
badarg
=
1
;
}
else
if
(
strcmp
(
*
args
,
"-pubin"
)
==
0
)
{
pubin
=
1
;
pubout
=
1
;
pubtext
=
1
;
}
else
if
(
strcmp
(
*
args
,
"-pubout"
)
==
0
)
pubout
=
1
;
else
if
(
strcmp
(
*
args
,
"-text_pub"
)
==
0
)
{
pubtext
=
1
;
text
=
1
;
}
else
if
(
strcmp
(
*
args
,
"-text"
)
==
0
)
text
=
1
;
else
if
(
strcmp
(
*
args
,
"-noout"
)
==
0
)
noout
=
1
;
else
{
cipher
=
EVP_get_cipherbyname
(
*
args
+
1
);
if
(
!
cipher
)
{
BIO_printf
(
bio_err
,
"Unknown cipher %s
\n
"
,
*
args
+
1
);
badarg
=
1
;
}
}
args
++
;
}
if
(
badarg
)
{
bad:
BIO_printf
(
bio_err
,
"Usage pkey [options]
\n
"
);
BIO_printf
(
bio_err
,
"where options are
\n
"
);
BIO_printf
(
bio_err
,
"-in file input file
\n
"
);
BIO_printf
(
bio_err
,
"-inform X input format (DER or PEM)
\n
"
);
BIO_printf
(
bio_err
,
"-passin arg input file pass phrase source
\n
"
);
BIO_printf
(
bio_err
,
"-outform X output format (DER or PEM)
\n
"
);
BIO_printf
(
bio_err
,
"-out file output file
\n
"
);
BIO_printf
(
bio_err
,
"-passout arg output file pass phrase source
\n
"
);
#ifndef OPENSSL_NO_ENGINE
BIO_printf
(
bio_err
,
"-engine e use engine e, possibly a hardware device.
\n
"
);
#endif
return
1
;
}
#ifndef OPENSSL_NO_ENGINE
e
=
setup_engine
(
bio_err
,
engine
,
0
);
#endif
if
(
!
app_passwd
(
bio_err
,
passargin
,
passargout
,
&
passin
,
&
passout
))
{
BIO_printf
(
bio_err
,
"Error getting passwords
\n
"
);
return
1
;
}
if
(
outfile
)
{
if
(
!
(
out
=
BIO_new_file
(
outfile
,
"wb"
)))
{
BIO_printf
(
bio_err
,
"Can't open output file %s
\n
"
,
outfile
);
return
(
1
);
}
}
else
{
out
=
BIO_new_fp
(
stdout
,
BIO_NOCLOSE
);
#ifdef OPENSSL_SYS_VMS
{
BIO
*
tmpbio
=
BIO_new
(
BIO_f_linebuffer
());
out
=
BIO_push
(
tmpbio
,
out
);
}
#endif
}
if
(
pubin
)
pkey
=
load_pubkey
(
bio_err
,
infile
,
informat
,
1
,
passin
,
e
,
"Public Key"
);
else
pkey
=
load_key
(
bio_err
,
infile
,
informat
,
1
,
passin
,
e
,
"key"
);
if
(
!
pkey
)
{
BIO_free_all
(
out
);
return
1
;
}
if
(
!
noout
)
{
if
(
outformat
==
FORMAT_PEM
)
{
if
(
pubout
)
PEM_write_bio_PUBKEY
(
out
,
pkey
);
else
PEM_write_bio_PrivateKey
(
out
,
pkey
,
cipher
,
NULL
,
0
,
NULL
,
passout
);
}
else
if
(
outformat
==
FORMAT_ASN1
)
{
if
(
pubout
)
i2d_PUBKEY_bio
(
out
,
pkey
);
else
i2d_PrivateKey_bio
(
out
,
pkey
);
}
else
{
BIO_printf
(
bio_err
,
"Bad format specified for key
\n
"
);
return
(
1
);
}
}
if
(
text
)
{
if
(
pubtext
)
EVP_PKEY_print_public
(
out
,
pkey
,
0
,
NULL
);
else
EVP_PKEY_print_private
(
out
,
pkey
,
0
,
NULL
);
}
end:
EVP_PKEY_free
(
pkey
);
BIO_free_all
(
out
);
BIO_free
(
in
);
if
(
passin
)
OPENSSL_free
(
passin
);
if
(
passout
)
OPENSSL_free
(
passout
);
return
(
0
);
}
This diff is collapsed.
Click to expand it.
apps/progs.h
浏览文件 @
3e84b6e1
...
...
@@ -34,6 +34,7 @@ extern int ciphers_main(int argc,char *argv[]);
extern
int
nseq_main
(
int
argc
,
char
*
argv
[]);
extern
int
pkcs12_main
(
int
argc
,
char
*
argv
[]);
extern
int
pkcs8_main
(
int
argc
,
char
*
argv
[]);
extern
int
pkey_main
(
int
argc
,
char
*
argv
[]);
extern
int
spkac_main
(
int
argc
,
char
*
argv
[]);
extern
int
smime_main
(
int
argc
,
char
*
argv
[]);
extern
int
rand_main
(
int
argc
,
char
*
argv
[]);
...
...
@@ -120,6 +121,7 @@ FUNCTION functions[] = {
{
FUNC_TYPE_GENERAL
,
"pkcs12"
,
pkcs12_main
},
#endif
{
FUNC_TYPE_GENERAL
,
"pkcs8"
,
pkcs8_main
},
{
FUNC_TYPE_GENERAL
,
"pkey"
,
pkey_main
},
{
FUNC_TYPE_GENERAL
,
"spkac"
,
spkac_main
},
{
FUNC_TYPE_GENERAL
,
"smime"
,
smime_main
},
{
FUNC_TYPE_GENERAL
,
"rand"
,
rand_main
},
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
新手
引导
客服
返回
顶部