Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
3e3d2ea2
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 搜索 >>
提交
3e3d2ea2
编写于
7月 27, 1999
作者:
D
Dr. Stephen Henson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
New function OBJ_obj2txt()
上级
770d19b8
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
77 addition
and
71 deletion
+77
-71
CHANGES
CHANGES
+6
-0
crypto/asn1/a_object.c
crypto/asn1/a_object.c
+3
-71
crypto/objects/obj_dat.c
crypto/objects/obj_dat.c
+66
-0
crypto/objects/objects.h
crypto/objects/objects.h
+1
-0
util/libeay.num
util/libeay.num
+1
-0
未找到文件。
CHANGES
浏览文件 @
3e3d2ea2
...
...
@@ -4,6 +4,12 @@
Changes between 0.9.3a and 0.9.4 [xx Jul/Aug/...? 1999]
*) New function OBJ_obj2txt(buf, buf_len, a, no_name), this converts
an ASN1_OBJECT to a text string. If the "no_name" parameter is set then
it will always use the numerical form of the OID, even if it has a short
or long name.
[Steve Henson]
*) Added an extra RSA flag: RSA_FLAG_EXT_PKEY. Previously the rsa_mod_exp
method only got called if p,q,dmp1,dmq1,iqmp components were present,
otherwise bn_mod_exp was called. In the case of hardware keys for example
...
...
crypto/asn1/a_object.c
浏览文件 @
3e3d2ea2
...
...
@@ -171,77 +171,9 @@ err:
}
int
i2t_ASN1_OBJECT
(
char
*
buf
,
int
buf_len
,
ASN1_OBJECT
*
a
)
{
int
i
,
idx
=
0
,
n
=
0
,
len
,
nid
;
unsigned
long
l
;
unsigned
char
*
p
;
const
char
*
s
;
char
tbuf
[
32
];
if
(
buf_len
<=
0
)
return
(
0
);
if
((
a
==
NULL
)
||
(
a
->
data
==
NULL
))
{
buf
[
0
]
=
'\0'
;
return
(
0
);
}
nid
=
OBJ_obj2nid
(
a
);
if
(
nid
==
NID_undef
)
{
len
=
a
->
length
;
p
=
a
->
data
;
idx
=
0
;
l
=
0
;
while
(
idx
<
a
->
length
)
{
l
|=
(
p
[
idx
]
&
0x7f
);
if
(
!
(
p
[
idx
]
&
0x80
))
break
;
l
<<=
7L
;
idx
++
;
}
idx
++
;
i
=
(
int
)(
l
/
40
);
if
(
i
>
2
)
i
=
2
;
l
-=
(
long
)(
i
*
40
);
sprintf
(
tbuf
,
"%d.%lu"
,
i
,
l
);
i
=
strlen
(
tbuf
);
strncpy
(
buf
,
tbuf
,
buf_len
);
buf_len
-=
i
;
buf
+=
i
;
n
+=
i
;
l
=
0
;
for
(;
idx
<
len
;
idx
++
)
{
l
|=
p
[
idx
]
&
0x7f
;
if
(
!
(
p
[
idx
]
&
0x80
))
{
sprintf
(
tbuf
,
".%lu"
,
l
);
i
=
strlen
(
tbuf
);
if
(
buf_len
>
0
)
strncpy
(
buf
,
tbuf
,
buf_len
);
buf_len
-=
i
;
buf
+=
i
;
n
+=
i
;
l
=
0
;
}
l
<<=
7L
;
}
}
else
{
s
=
OBJ_nid2ln
(
nid
);
if
(
s
==
NULL
)
s
=
OBJ_nid2sn
(
nid
);
strncpy
(
buf
,
s
,
buf_len
);
n
=
strlen
(
s
);
}
buf
[
buf_len
-
1
]
=
'\0'
;
return
(
n
);
}
{
return
OBJ_obj2txt
(
buf
,
buf_len
,
a
,
0
);
}
int
i2a_ASN1_OBJECT
(
BIO
*
bp
,
ASN1_OBJECT
*
a
)
{
...
...
crypto/objects/obj_dat.c
浏览文件 @
3e3d2ea2
...
...
@@ -418,6 +418,72 @@ ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name)
return
op
;
}
int
OBJ_obj2txt
(
char
*
buf
,
int
buf_len
,
ASN1_OBJECT
*
a
,
int
no_name
)
{
int
i
,
idx
=
0
,
n
=
0
,
len
,
nid
;
unsigned
long
l
;
unsigned
char
*
p
;
const
char
*
s
;
char
tbuf
[
32
];
if
(
buf_len
<=
0
)
return
(
0
);
if
((
a
==
NULL
)
||
(
a
->
data
==
NULL
))
{
buf
[
0
]
=
'\0'
;
return
(
0
);
}
nid
=
OBJ_obj2nid
(
a
);
if
((
nid
==
NID_undef
)
||
no_name
)
{
len
=
a
->
length
;
p
=
a
->
data
;
idx
=
0
;
l
=
0
;
while
(
idx
<
a
->
length
)
{
l
|=
(
p
[
idx
]
&
0x7f
);
if
(
!
(
p
[
idx
]
&
0x80
))
break
;
l
<<=
7L
;
idx
++
;
}
idx
++
;
i
=
(
int
)(
l
/
40
);
if
(
i
>
2
)
i
=
2
;
l
-=
(
long
)(
i
*
40
);
sprintf
(
tbuf
,
"%d.%lu"
,
i
,
l
);
i
=
strlen
(
tbuf
);
strncpy
(
buf
,
tbuf
,
buf_len
);
buf_len
-=
i
;
buf
+=
i
;
n
+=
i
;
l
=
0
;
for
(;
idx
<
len
;
idx
++
)
{
l
|=
p
[
idx
]
&
0x7f
;
if
(
!
(
p
[
idx
]
&
0x80
))
{
sprintf
(
tbuf
,
".%lu"
,
l
);
i
=
strlen
(
tbuf
);
if
(
buf_len
>
0
)
strncpy
(
buf
,
tbuf
,
buf_len
);
buf_len
-=
i
;
buf
+=
i
;
n
+=
i
;
l
=
0
;
}
l
<<=
7L
;
}
}
else
{
s
=
OBJ_nid2ln
(
nid
);
if
(
s
==
NULL
)
s
=
OBJ_nid2sn
(
nid
);
strncpy
(
buf
,
s
,
buf_len
);
n
=
strlen
(
s
);
}
buf
[
buf_len
-
1
]
=
'\0'
;
return
(
n
);
}
int
OBJ_txt2nid
(
char
*
s
)
{
ASN1_OBJECT
*
obj
;
...
...
crypto/objects/objects.h
浏览文件 @
3e3d2ea2
...
...
@@ -928,6 +928,7 @@ const char * OBJ_nid2ln(int n);
const
char
*
OBJ_nid2sn
(
int
n
);
int
OBJ_obj2nid
(
ASN1_OBJECT
*
o
);
ASN1_OBJECT
*
OBJ_txt2obj
(
const
char
*
s
,
int
no_name
);
int
OBJ_obj2txt
(
char
*
buf
,
int
buf_len
,
ASN1_OBJECT
*
a
,
int
no_name
);
int
OBJ_txt2nid
(
char
*
s
);
int
OBJ_ln2nid
(
const
char
*
s
);
int
OBJ_sn2nid
(
const
char
*
s
);
...
...
util/libeay.num
浏览文件 @
3e3d2ea2
...
...
@@ -1842,3 +1842,4 @@ sk_POLICYQUALINFO_sort 1866
sk_X509_CRL_sort 1867
sk_DIST_POINT_sort 1868
RSA_check_key 1869
OBJ_obj2txt 1870
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录