SafeEngine Java接口说明v122.docx

上传人:b****6 文档编号:6004843 上传时间:2023-01-02 格式:DOCX 页数:31 大小:26.27KB
下载 相关 举报
SafeEngine Java接口说明v122.docx_第1页
第1页 / 共31页
SafeEngine Java接口说明v122.docx_第2页
第2页 / 共31页
SafeEngine Java接口说明v122.docx_第3页
第3页 / 共31页
SafeEngine Java接口说明v122.docx_第4页
第4页 / 共31页
SafeEngine Java接口说明v122.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

SafeEngine Java接口说明v122.docx

《SafeEngine Java接口说明v122.docx》由会员分享,可在线阅读,更多相关《SafeEngine Java接口说明v122.docx(31页珍藏版)》请在冰豆网上搜索。

SafeEngine Java接口说明v122.docx

SafeEngineJava接口说明v122

JavaSafeEngineforWindows

(AlsoForLinux&AIX)

接口说明

上海市电子商务安全证书管理中心有限公司

 

2004-1-16

文档说明:

SafeEngineforJava的接口说明和单点登录接口。

版本信息:

当前Java接口版本1.2

最新版本:

1.22更新时间:

2004年1月16日星期五

版权信息:

SHECA是上海市电子商务安全证书管理中心有限公司的注册商标和缩写。

UCA是上海市电子商务安全证书管理中心有限公司研究开发的通用证书系统的商标和缩写。

本文的版权属于上海市电子商务安全证书管理中心有限公司,未经许可,任何个人和团体不得转载、粘贴或发布本文,也不得部分的转载、粘贴或发布本文,更不得更改本文的部分词汇进行转贴。

未经许可不得拷贝,影印。

Copyright@2000上海市电子商务安全证书管理中心有限公司

一.SafeEngineforJava接口的目的:

该接口是为所有应用程序开发者提供安全平台接口,提供程序开发人员1024/128位强度的加密算法,任何使用SHECA证书的应用软件都可以实现无痛苦的切入,所有的安全机制有该接口实现(包括证书验证,黑名单查询等等)。

V1.22版:

新增了对单点登录功能的支持接口,需要SafeEngineComV2.0以上版本和UniTrustSSOAgentV1.0以上版本的支持。

二.SafeEngineforJava说明:

本接口提供以下版本:

Win9x/NT,Solaris,AIX,HP,UnixWare,Linux。

接口提供以下功能:

数字信封,数字签名,验证签名,摘要。

从磁盘等介质中读取证书,私钥,证书验证(包括CRL,OCSP验证),证书解码。

V1.22版中增加了对单点登录功能的支持接口,包含登录初始化,登录验证和登录凭证解码等功能。

三.版本说明:

当前的JAVA版本所调用到的safeengine为2.2版本以上。

1.2较之1.1版新增6部份的函数:

●初始化扩展(1函数)

●数字信封扩展(2函数)

●对称加密(4函数)

●对称加密扩展(4函数)

●生成公私要对(4函数)

●生成随机数(2函数)

1.22较之1.2版新增部份:

●Sheca_login类,该类包含5个主要方法。

四.SafeEngineforJava方法定义:

获取出错代码

得到调用方法的返回值.调用返回值类型不是数字的方法后,请调用该方法判断

是否调用成功。

intgetErrorCode()

初始化环境

由三个方法可以完成初始化环境功能:

intshecaInitEnviroment(intintPrivateKeyType,StringstrPrivateKeyDeviceParameter,

StringstrPrivateKeyPassword,intintPrivateKeyTimeout,

intintRootCertDeviceType,StringstrRootCertDeviceParameter,

StringstrRootCertPassword)

intshecaInitEnviromentByte(intintPrivateKeyType,byte[]bytePrivateKeyDeviceParameter,

byte[]bytePrivateKeyPassword,intintPrivateKeyTimeout,

intintRootCertDeviceType,byte[]byteRootCertDeviceParameter,

byte[]byteRootCertPassword)

longshecaInitEnvironmentEx(StringstrPrivateKey,StringstrPrivateKeyPassword,

StringstrRootCert);

功能:

初始化环境.从设备中读取私钥,根证书。

在调用以下方法前必须先调用此三个方法之一初始化.

参数:

参数名

含义

In/out

参数选项

intPrivateKeyType

存储私钥的设备类型

In

2为文件

其他见设备类型编码表

strPrivateKeyDeviceParameter

bytePrivateKeyDeviceParameter

存储私钥设备的参数

In

如privatekeydevicetpe=2为文件名,

其他可为”com1”,“com2”

若不需要私钥,可设为空字符串“”,表示不取私钥

strPrivateKeyPassword

bytePrivateKeyPassword

私钥密码

In

intPrivateKeyTimeout

私钥超时时间.秒为单位

In

IntRootCertDeviceType

存储根证书的设备类型

In

2为文件

其他见设备类型编码表

strRootCertDeviceParameter

byteRootCertDeviceParameter

存储根证书设备的参数

In

如privatekeydevicetpe=2为文件名,

其他可为”com1”,“com2”

若不需要根证书,可设为空字符串“”,表示不取根证书

strRootCertPassword

byteRootCertPassword

根证书密码

In

仅当rootcertdevicetype为IC卡时有效

strPrivateKey

私钥BASE64编码

IN

必须输入项

strPrivateKeyPassword

私钥密码

IN

必须输入项

strRootCert

根证书BASE64编码

IN

必须输入项

返回:

=0

正常返回,

0x82040000

装载动态库出错

0x82040002

读写私钥设备失败

0x82040003

私钥密码错误

0x82040004

读写根证书设备失败

0x82040005

根证书密码错误

0x8204000A

初始化错误

0x82040001

内存分配错误

其他错误

0xFFFFFFF4

没有正确安装Safeengine.dll

0xFFFFFFF3

分配系统内存异常

清除环境

intshecaClearEnviroment()

功能:

清除环境变量.

和初始化方法配对使用.

返回:

=0

正常返回,

0x8204000A

没有初始化

0x82040000

装载动态库出错

0x8204000B

清除环境错误

PEM编码/解码

PEM编码

byte[]shecaPEMEncode(byte[]indata)

将二进制字符串转成可见字符串。

参数:

参数名

含义

输入?

输出

参数选项

indata

待编码的数据

in

返回值:

0

正常返回

0x8204000A

没有初始化

0x82040024

编码错误

PEM解码

byte[]shecaPEMDecode(byte[]pemdata)

参数:

参数名

含义

输入?

输出

参数选项

pemdata

待解码的数据

in

返回值:

0

正常返回

0x8204000A

没有初始化

0x82040025

解码错误

PKCS12接口

从PKCS12中获取证书

StringshecaGetCertFromPKCS12(StringstrPKCS12,StringstrPKCS12Password);

参数:

参数名

含义

In/out

参数选项

strPKCS12

PKCS12数据块

In

strPKCS12Password

PKCS12数据密码

In

getErrorCode()方法返回值:

=0

正常返回,

0x8204000A

没有初始化

0x82040000

装载动态库出错

0x8204000C

签名错误

0x82040008

超时,私钥密码错误.

-5

PEM编码出错

数字签名

签名

由两个方法可以实现签名

StringshecaSignData(StringstrOriginData,intintSignmethod)

byte[]shecaSignData(byte[]byteOriginData,intintSignmethod)

参数:

参数名

含义

In/out

参数选项

strOriginData

byteOriginData

原始数据块

In

intSignmethod

签名类型

In

1:

MD2

2:

MD5

3:

SHA1

getErrorCode()方法返回值:

=0

正常返回,

0x8204000A

没有初始化

0x82040000

装载动态库出错

0x8204000C

签名错误

0x82040008

超时,私钥密码错误.

0x82040024

PEM编码出错

0x82040025

PEM解码出错

0x82040029

公私钥不匹配

0x8204002B

非法的P12值

0x8204002C

P12解码错误

摘要

由两个方法可以实现摘要

StringshecaDigest(StringstrOrigindata,intintMethod)

byte[]shecaDigestByte(byte[]byteOrigindata,intintMethod)

参数:

参数名

含义

In/out

参数选项

strOrigindata

byteOrigindata

原始数据块

In

intMethod

摘要方法

In

1:

MD2

2:

MD5

3:

SHA1

getErrorCode()方法返回值:

=0

正常返回,

0x82040000

装载动态库出错

0x8204000A

没有初始化

0x8204000E

摘要错误

-4

PEM编码出错

验证签名

由两个方法可以实现验证签名

intshecaVerifySignData(StringstrOriginData,intintSignmethod,StringstrSignedData,

StringstrCeritificate)

intshecaVerifySignDataByte(byte[]byteOriginData,intintSignmethod,byte[]byteSignedData,

byte[]byteCeritificate)

参数:

参数名

含义

In/out

参数选项

strOriginData

byteOriginData

原始数据块

In

IntSignmethod

签名类型

In

1:

MD2

2:

MD5

3:

SHA1

strSignedData

byteSignedData

签名数据块

In

strCertificate

byteCertificate

证书内容

In

返回:

=0

正常返回,

0x8204000A

没有初始化

0x82040000

装载动态库出错

0x8204000D

验证错误

0x8204000F

证书错误

0x82040001

内存分配错误

-5

证书PEM解码出错

-6

签名数据PEM解码出错

数字信封

由两个方法可以实现数字信封加密

StringshecaEnvelope(intintEnvelopetype,StringstrIndata,StringstrCertificate);

byte[]shecaEnvelope(intintEnvelopetype,byte[]byteIndata,byte[]byteCertificate);

功能:

数字信封打包或拆解

参数:

参数名

含义

In/out

参数选项

IntEnvelopetype

信封类型

In

1组成数字信封

2拆解数字信封

strIndata

byteIndata

原始数据块

In

strCertificate

byteCertificate

证书内容

In

在解数字信封时不起作用

getErrorCode()方法返回值:

=0

正常返回,

0x8204000A

没有初始化

0x82040000

装载动态库出错

0x82040010

数字信封错误

0x82040008

超时,私钥密码错误.

0x8204000F

证书无效.

0x82040001

内存分配错误

-6

证书PEM解码出错

-7

信封PEM编码出错

-8

信封PEM解码出错

解数字信封时,若私钥超时,先重读私钥,若密码错误,返回–3,此时需重新初始化.

数字信封扩展

由两个方法可以实现数字信封加解密扩展

StringshecaEnvelopeEx(intintEnvelopetype,StringstrIndata,StringstrCertificate);

byte[]shecaEnvelopeExBytes(intintEnvelopetype,byte[]byteIndata,byte[]byteCertificate);

功能:

数字信封打包或拆解

参数:

参数名

含义

In/out

参数选项

IntEnvelopetype

信封类型

In

1组成数字信封

2拆解数字信封

strIndata

byteIndata

原始数据块

In

strCertificate

byteCertificate

证书内容

In

在解数字信封时不起作用

getErrorCode()方法返回值:

=0

正常返回,

0x8204000A

没有初始化

0x82040000

装载动态库出错

0x82040010

数字信封错误

0x82040008

超时,私钥密码错误.

0x8204000F

证书无效.

0x82040001

内存分配错误

-6

证书PEM解码出错

-7

信封PEM编码出错

-8

信封PEM解码出错

解数字信封时,若私钥超时,先重读私钥,若密码错误,返回–3,此时需重新初始化.

对称加密

由两个方法可以实现对称加密

StringshecaEncryptData(byte[]byteIndata,StringstrKey);

byte[]shecaEncryptDataBytes(byte[]byteIndata,byte[]byteKey);

功能:

数据对称加密

参数:

参数名

含义

In/out

参数选项

strIndata

byteIndata

原始数据块

In

strKey,

byteKey

对称密钥

In

getErrorCode()方法返回值:

=0

正常返回,

0x8XXXXX

请查看SafeEngine的说明

-1,-2,-4

分配内存错

-3

密码长度错

对称解密

由两个方法可以实现对称解密

StringshecaDecryptData(StringstrIndata,StringstrKey);

byte[]shecaDecryptDataBytes(byte[]byteIndata,byte[]byteKey);

功能:

数据对称解密

参数:

参数名

含义

In/out

参数选项

strIndata

byteIndata

加密数据块

In

strKey,

byteKey

对称密钥

In

getErrorCode()方法返回值:

=0

正常返回,

0x8XXXXX

请查看SafeEngine的说明

-1,-2,-4,-5

分配内存错

-3

密码长度错

对称加密扩展

由两个方法可以实现对称加密扩展

StringshecaEncryptDataEx(byte[]byteIndata,StringstrKey,intintAlgID);

nativebyte[]shecaEncryptDataExBytes(byte[]byteIndata,byte[]byteKey,intintAlgID);

功能:

数据对称加密扩展

参数:

参数名

含义

In/out

参数选项

strIndata

byteIndata

原始数据块

In

strKey,

byteKey

对称密钥

In

AlgID

加密算法

In

getErrorCode()方法返回值:

=0

正常返回,

0x8XXXXX

请查看SafeEngine的说明

-1,-2,-3,-4,-5

分配内存错

对称解密扩展

由两个方法可以实现对称解密扩展

StringshecaDecryptDataEx(StringstrIndata,StringstrKey,intintAlgID);

byte[]shecaDecryptDataExBytes(byte[]byteIndata,byte[]byteKey,intintAlgID);

功能:

数据对称解密扩展

参数:

参数名

含义

In/out

参数选项

strIndata

byteIndata

加密数据块

In

strKey,

byteKey

对称密钥

In

AlgID

加密算法

In

getErrorCode()方法返回值:

=0

正常返回,

0x8XXXXX

请查看SafeEngine的说明

-1,-2,-3,-4,-5

分配内存错

证书

从介质中获取证书

由两个方法可以实现从介质中获取证书

StringshecaGetSelfCertificate(intintDevicetype,StringstrDeviceParameter,StringstrPassword)

byte[]shecaGetSelfCertificate(intintDevicetype,byte[]byteDeviceParam,byte[]bytePassword)

功能:

从设备中读取证书,证书的来源可以是IC卡,磁盘。

参数:

参数名

含义

In/out

参数选项

intDevicetype

设备类型

in

2为文件

其他见设备类型编码表

strDeviceParameter

byteDeviceParam

设备参数

In

如privatekeydevicetpe=2为文件名,

其他可为”com1”,“com2”

strPassword

bytePassword

密码

In

getErrorCode()方法返回值:

=0

正常返回,

0x8204000A

没有初始化

0x82040000

装载动态库出错

0x82040006

读证书失败

0x82040009

缓冲区不够长

0x82040007

密码错误

0x82040001

内存分配错误

-6

证书PEM编码出错

从网络获取证书

由两个方法可以实现从网络获取证书

StringshecaGetCertificate(StringstrSerialNo,StringstrUrl);

byte[]shecaGetCertificate(byte[]byteSerialNo,byte[]byteUrl);

功能:

先读取本地缓冲库,然后检查CA证书库。

参数:

参数名

含义

In/out

参数选项

strSerialNo

byteSerialNo

证书序列号

In

strUrl

byteUrl

证书查询url

In

格式:

IP:

PORT

getErrorCode()方法返回值:

=0

正常返回,

0x8204000A

没有初始化

0x82040000

装载动态库出错

0x82040011

得证书失败

0x82040009

缓冲区不够长

0x82040001

内存分配错误

-6

证书PEM编码出错

通过黑名单验证证书

由两个方法可以实现通过黑名单验证证书

intshecaVerifyCertificate(byte[]byteCertificate)

功能:

验证证书有效性,先验有效期,ca签发,根据配置决定是否验证本地黑名单,ca黑名单。

配置方式见SE_SetConfiguration说明。

参数:

参数名

含义

In/out

参数选项

strCertificate

byteCertificate

证书内容

In

证书内容

返回:

=0

证书有效

0x8204000A

没有初始化

0x82040000

装载动态库出错

0x8204000F

证书错误

0x82040012

有效期外

0x82040015

非ca签发

0x82040016

黑名单中

0x82040017

黑名单文件错误

0x82040001

内存分配错误

-8

证书PEM解码出错

通过OCSP验证证书

由两个方法可以实现通过OCSP验证证书

intshecaVerifyCertificateOnline(StringstrCertificate)

intshecaVerifyCertificateOnline(byte[]byteCertificate)

功能:

在线验证证书有效性,先验有效期,ca签发,本地黑名单,然后ocsp

参数:

参数名

含义

In/out

参数选项

strCertificate

byteCertificate

证书内容

In

返回:

=0

证书有效

0x8204000A

没有初始化

0x82040000

装载动态库出错

0x82040018

连接失败

0x8204000F

证书错误

0x82040012

有效期外

0x82040015

非ca签发

0x8204001A

OCSP回包无效

0x8204001B

OCSP回包错误

0x8204001C

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1