java.lang.Object
java.security.SignatureSpi
- 已知子类:
Signature
这个类定义了服务提供商接口 (SPI) 用于
Signature 类,用于提供数字签名算法的功能。数字签名用于数字数据的认证和完整性保证。
此类中的所有抽象方法必须由希望提供特定签名算法实现的每个密码服务提供者实现。
- 自从:
- 1.2
- 参见:
-
字段摘要
字段 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述clone()如果实现是可克隆的,则返回一个克隆。protected abstract ObjectengineGetParameter(String param) 已弃用。protected AlgorithmParameters返回与此Signature对象一起使用的参数。protected abstract voidengineInitSign(PrivateKey privateKey) 使用指定的私钥初始化此Signature对象以进行签名操作。protected voidengineInitSign(PrivateKey privateKey, SecureRandom random) 使用指定的私钥和签名操作的随机源初始化此Signature对象。protected abstract voidengineInitVerify(PublicKey publicKey) 使用指定的公钥初始化此Signature对象以进行验证操作。protected abstract voidengineSetParameter(String param, Object value) 已弃用。protected void使用指定的参数值初始化此Signature对象。protected abstract byte[]返回到目前为止更新的所有数据的签名字节。protected intengineSign(byte[] outbuf, int offset, int len) 完成此签名操作并将生成的签名字节存储在提供的缓冲区outbuf中,从offset开始。protected abstract voidengineUpdate(byte b) 使用指定的字节更新要签名或验证的数据。protected abstract voidengineUpdate(byte[] b, int off, int len) 使用指定的字节数组从指定的偏移量开始更新要签名或验证的数据。protected voidengineUpdate(ByteBuffer input) 使用指定的 ByteBuffer 更新要签名或验证的数据。protected abstract booleanengineVerify(byte[] sigBytes) 验证传入的签名。protected booleanengineVerify(byte[] sigBytes, int offset, int length) 从指定的偏移量开始,验证指定字节数组中传入的签名。
-
字段详细信息
-
appRandom
应用程序指定的随机源。
-
-
构造方法详细信息
-
SignatureSpi
public SignatureSpi()子类调用的构造方法。
-
-
方法详情
-
engineInitVerify
使用指定的公钥初始化此Signature对象以进行验证操作。- 参数:
publicKey- 要验证其签名的身份的公钥。- 抛出:
InvalidKeyException- 如果密钥编码不正确、参数丢失等。
-
engineInitSign
使用指定的私钥初始化此Signature对象以进行签名操作。- 参数:
privateKey- 将生成其签名的身份的私钥。- 抛出:
InvalidKeyException- 如果密钥编码不正确、参数丢失等。
-
engineInitSign
protected void engineInitSign(PrivateKey privateKey, SecureRandom random) throws InvalidKeyException 使用指定的私钥和签名操作的随机源初始化此Signature对象。此具体方法已添加到此先前定义的抽象类中。 (为了向后兼容,它不能是抽象的。)
- 参数:
privateKey- 将生成其签名的身份的私钥。random- 随机源- 抛出:
InvalidKeyException- 如果密钥编码不正确、参数丢失等。
-
engineUpdate
使用指定的字节更新要签名或验证的数据。- 参数:
b- 用于更新的字节。- 抛出:
SignatureException- 如果引擎未正确初始化。
-
engineUpdate
使用指定的字节数组从指定的偏移量开始更新要签名或验证的数据。- 参数:
b- 字节数组off- 字节数组中的起始偏移量len- 要使用的字节数,从偏移量开始- 抛出:
SignatureException- 如果引擎未正确初始化
-
engineUpdate
使用指定的 ByteBuffer 更新要签名或验证的数据。处理从data.position()开始的data.remaining()字节。返回时,缓冲区的位置将等于其限制;它的限制不会改变。- 参数:
input- 字节缓冲区- 自从:
- 1.5
-
engineSign
返回到目前为止更新的所有数据的签名字节。签名的格式取决于底层签名方案。- 返回:
- 签名操作结果的签名字节。
- 抛出:
SignatureException- 如果引擎未正确初始化或此签名算法无法处理提供的输入数据。
-
engineSign
完成此签名操作并将生成的签名字节存储在提供的缓冲区outbuf中,从offset开始。签名的格式取决于底层签名方案。签名实现重置为其初始状态(调用
engineInitSign方法之一后所处的状态),并且可以重复使用以使用相同的私钥生成更多签名。这个方法应该是抽象的,但我们为了二进制兼容性而将其具体化。知识渊博的提供者应该覆盖此方法。- 参数:
outbuf- 签名结果的缓冲区。offset- 偏移到存储签名的outbuf。len-outbuf中分配给签名的字节数。此默认实现和 SUN 提供程序都不会返回部分摘要。如果此参数的值小于实际签名长度,则此方法将抛出SignatureException。如果该参数的值大于或等于实际签名长度,则忽略该参数。- 返回:
-
放入
outbuf的字节数 - 抛出:
SignatureException- 如果引擎未正确初始化,如果此签名算法无法处理提供的输入数据,或者如果len小于实际签名长度。- 自从:
- 1.2
-
engineVerify
验证传入的签名。- 参数:
sigBytes- 要验证的签名字节。- 返回:
true如果签名被验证,false如果没有。- 抛出:
SignatureException- 如果引擎未正确初始化,传入的签名编码不正确或类型错误,如果此签名算法无法处理提供的输入数据等。
-
engineVerify
从指定的偏移量开始,验证指定字节数组中传入的签名。注意:子类应该重写默认实现。
- 参数:
sigBytes- 要验证的签名字节。offset- 字节数组中的起始偏移量。length- 要使用的字节数,从偏移量开始。- 返回:
true如果签名被验证,false如果没有。- 抛出:
SignatureException- 如果引擎未正确初始化,传入的签名编码不正确或类型错误,如果此签名算法无法处理提供的输入数据等。- 自从:
- 1.4
-
engineSetParameter
@Deprecated protected abstract void engineSetParameter(String param, Object value) throws InvalidParameterException 已弃用。替换为engineSetParameter。将指定的算法参数设置为指定的值。此方法提供了一种通用机制,通过该机制可以设置此对象的各种参数。参数可以是算法的任何可设置参数,例如参数大小,或用于签名生成的随机位源(如果适用),或是否执行特定但可选计算的指示。每个参数的统一算法特定命名方案是可取的,但此时未指定。- 参数:
param- 参数的字符串标识符。value- 参数值。- 抛出:
InvalidParameterException- 如果param是此Signature对象的无效参数,则该参数已设置且无法再次设置,发生安全异常,等等。
-
engineSetParameter
protected void engineSetParameter(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException 使用指定的参数值初始化此Signature对象。- 参数:
params- 参数- 抛出:
UnsupportedOperationException- 如果此方法未被提供者覆盖InvalidAlgorithmParameterException- 如果此方法被提供者覆盖并且给定的参数不适合此Signature对象
-
engineGetParameters
返回与此Signature对象一起使用的参数。返回的参数可能与用于初始化此
Signature对象的参数相同,或者可能包含底层签名方案使用的其他默认或随机参数值。如果所需参数未提供且可由Signature对象生成,则返回生成的参数;否则返回null。但是,如果签名方案不支持将参数返回为
AlgorithmParameters,则始终返回null。- 返回:
-
与此
Signature对象或null一起使用的参数 - 抛出:
UnsupportedOperationException- 如果此方法未被提供者覆盖- 自从:
- 1.4
-
engineGetParameter
@Deprecated protected abstract Object engineGetParameter(String param) throws InvalidParameterException 已弃用。获取指定算法参数的值。此方法提供了一种通用机制,通过该机制可以获得此对象的各种参数。参数可以是算法的任何可设置参数,例如参数大小,或用于签名生成的随机位源(如果适用),或是否执行特定但可选计算的指示。每个参数的统一算法特定命名方案是可取的,但此时未指定。- 参数:
param- 参数的字符串名称。- 返回:
-
表示参数值的对象,如果没有则为
null。 - 抛出:
InvalidParameterException- 如果param是此引擎的无效参数,或者在尝试获取此参数时发生另一个异常。
-
clone
如果实现是可克隆的,则返回一个克隆。- 重写:
clone在类Object中- 返回:
- 如果实现是可克隆的,则为克隆。
- 抛出:
CloneNotSupportedException- 如果在不支持Cloneable的实现上调用它。- 参见:
-
engineSetParameter。