Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
2f0eae31
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看板
提交
2f0eae31
编写于
3月 27, 1999
作者:
D
Dr. Stephen Henson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
extranet file added...
上级
785cdf20
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
217 addition
and
0 deletion
+217
-0
crypto/x509v3/v3_sxnet.c
crypto/x509v3/v3_sxnet.c
+217
-0
未找到文件。
crypto/x509v3/v3_sxnet.c
0 → 100644
浏览文件 @
2f0eae31
/* v3_sxnet.c */
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
* project 1999.
*/
/* ====================================================================
* 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
* 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 "conf.h"
#include "asn1.h"
#include "asn1_mac.h"
#include "x509v3.h"
/* Support for Thawte strong extranet extension */
#ifndef NOPROTO
static
int
sxnet_i2r
(
X509V3_EXT_METHOD
*
method
,
SXNET
*
sx
,
BIO
*
out
,
int
indent
);
#else
static
int
sxnet_i2r
();
#endif
X509V3_EXT_METHOD
v3_sxnet
=
{
NID_sxnet
,
X509V3_EXT_MULTILINE
,
(
X509V3_EXT_NEW
)
SXNET_new
,
SXNET_free
,
(
X509V3_EXT_D2I
)
d2i_SXNET
,
i2d_SXNET
,
NULL
,
NULL
,
NULL
,
NULL
,
(
X509V3_EXT_I2R
)
sxnet_i2r
,
NULL
,
NULL
};
/*
* ASN1err(ASN1_F_SXNET_NEW,ERR_R_MALLOC_FAILURE);
* ASN1err(ASN1_F_D2I_SXNET,ERR_R_MALLOC_FAILURE);
* ASN1err(ASN1_F_SXNETID_NEW,ERR_R_MALLOC_FAILURE);
* ASN1err(ASN1_F_D2I_SXNETID,ERR_R_MALLOC_FAILURE);
*/
int
i2d_SXNET
(
a
,
pp
)
SXNET
*
a
;
unsigned
char
**
pp
;
{
M_ASN1_I2D_vars
(
a
);
M_ASN1_I2D_len
(
a
->
version
,
i2d_ASN1_INTEGER
);
M_ASN1_I2D_len_SEQUENCE
(
a
->
ids
,
i2d_SXNETID
);
M_ASN1_I2D_seq_total
();
M_ASN1_I2D_put
(
a
->
version
,
i2d_ASN1_INTEGER
);
M_ASN1_I2D_put_SEQUENCE
(
a
->
ids
,
i2d_SXNETID
);
M_ASN1_I2D_finish
();
}
SXNET
*
SXNET_new
()
{
SXNET
*
ret
=
NULL
;
ASN1_CTX
c
;
M_ASN1_New_Malloc
(
ret
,
SXNET
);
ret
->
version
=
NULL
;
ret
->
ids
=
NULL
;
return
(
ret
);
M_ASN1_New_Error
(
ASN1_F_SXNET_NEW
);
}
SXNET
*
d2i_SXNET
(
a
,
pp
,
length
)
SXNET
**
a
;
unsigned
char
**
pp
;
long
length
;
{
M_ASN1_D2I_vars
(
a
,
SXNET
*
,
SXNET_new
);
M_ASN1_D2I_Init
();
M_ASN1_D2I_start_sequence
();
M_ASN1_D2I_get
(
ret
->
version
,
d2i_ASN1_INTEGER
);
M_ASN1_D2I_get_seq
(
ret
->
ids
,
d2i_SXNETID
,
SXNETID_free
);
M_ASN1_D2I_Finish
(
a
,
SXNET_free
,
ASN1_F_D2I_SXNET
);
}
void
SXNET_free
(
a
)
SXNET
*
a
;
{
if
(
a
==
NULL
)
return
;
ASN1_INTEGER_free
(
a
->
version
);
sk_pop_free
(
a
->
ids
,
SXNETID_free
);
Free
((
char
*
)
a
);
}
int
i2d_SXNETID
(
a
,
pp
)
SXNETID
*
a
;
unsigned
char
**
pp
;
{
M_ASN1_I2D_vars
(
a
);
M_ASN1_I2D_len
(
a
->
zone
,
i2d_ASN1_INTEGER
);
M_ASN1_I2D_len
(
a
->
user
,
i2d_ASN1_OCTET_STRING
);
M_ASN1_I2D_seq_total
();
M_ASN1_I2D_put
(
a
->
zone
,
i2d_ASN1_INTEGER
);
M_ASN1_I2D_put
(
a
->
user
,
i2d_ASN1_OCTET_STRING
);
M_ASN1_I2D_finish
();
}
SXNETID
*
SXNETID_new
()
{
SXNETID
*
ret
=
NULL
;
ASN1_CTX
c
;
M_ASN1_New_Malloc
(
ret
,
SXNETID
);
ret
->
zone
=
NULL
;
M_ASN1_New
(
ret
->
user
,
ASN1_OCTET_STRING_new
);
return
(
ret
);
M_ASN1_New_Error
(
ASN1_F_SXNETID_NEW
);
}
SXNETID
*
d2i_SXNETID
(
a
,
pp
,
length
)
SXNETID
**
a
;
unsigned
char
**
pp
;
long
length
;
{
M_ASN1_D2I_vars
(
a
,
SXNETID
*
,
SXNETID_new
);
M_ASN1_D2I_Init
();
M_ASN1_D2I_start_sequence
();
M_ASN1_D2I_get
(
ret
->
zone
,
d2i_ASN1_INTEGER
);
M_ASN1_D2I_get
(
ret
->
user
,
d2i_ASN1_OCTET_STRING
);
M_ASN1_D2I_Finish
(
a
,
SXNETID_free
,
ASN1_F_D2I_SXNETID
);
}
void
SXNETID_free
(
a
)
SXNETID
*
a
;
{
if
(
a
==
NULL
)
return
;
ASN1_INTEGER_free
(
a
->
zone
);
ASN1_OCTET_STRING_free
(
a
->
user
);
Free
((
char
*
)
a
);
}
static
int
sxnet_i2r
(
method
,
sx
,
out
,
indent
)
X509V3_EXT_METHOD
*
method
;
SXNET
*
sx
;
BIO
*
out
;
int
indent
;
{
long
v
;
char
*
tmp
;
SXNETID
*
id
;
int
i
;
v
=
ASN1_INTEGER_get
(
sx
->
version
);
BIO_printf
(
out
,
"%*sVersion: %d (0x%X)"
,
indent
,
""
,
v
+
1
,
v
);
for
(
i
=
0
;
i
<
sk_num
(
sx
->
ids
);
i
++
)
{
id
=
(
SXNETID
*
)
sk_value
(
sx
->
ids
,
i
);
tmp
=
i2s_ASN1_INTEGER
(
NULL
,
id
->
zone
);
BIO_printf
(
out
,
"
\n
%*sZone: %s, User: "
,
indent
,
""
,
tmp
);
Free
(
tmp
);
ASN1_OCTET_STRING_print
(
out
,
id
->
user
);
}
return
1
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录