java.lang.Object
java.security.SignatureSpi
- 直接已知的子类:
-
Signature
该类定义了 服务提供者接口 (SPI),用于
Signature
类,该类用于提供数字签名算法的功能。数字签名用于对数字数据进行身份验证和完整性保证。
该类中的所有抽象方法必须由每个希望提供特定签名算法实现的加密服务提供者来实现。
- 自版本:
- 1.2
- 参见:
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionclone()
如果实现可克隆,则返回克隆对象。protected abstract Object
engineGetParameter
(String param) 已弃用。protected AlgorithmParameters
返回与此Signature
对象一起使用的参数。protected abstract void
engineInitSign
(PrivateKey privateKey) 使用指定的私钥初始化此Signature
对象以进行签名操作。protected void
engineInitSign
(PrivateKey privateKey, SecureRandom random) 使用指定的私钥和随机源初始化此Signature
对象以进行签名操作。protected abstract void
engineInitVerify
(PublicKey publicKey) 使用指定的公钥初始化此Signature
对象以进行验证操作。protected abstract void
engineSetParameter
(String param, Object value) 已弃用。protected void
使用指定的参数值初始化此Signature
对象。protected abstract byte[]
返回到目前为止更新的所有数据的签名字节。protected int
engineSign
(byte[] outbuf, int offset, int len) 完成此签名操作,并将生成的签名字节存储在提供的缓冲区outbuf
中,从offset
开始。protected abstract void
engineUpdate
(byte b) 使用指定的字节更新要签名或验证的数据。protected abstract void
engineUpdate
(byte[] b, int off, int len) 使用指定的字节数组更新要签名或验证的数据,从指定的偏移量开始。protected void
engineUpdate
(ByteBuffer input) 使用指定的 ByteBuffer 更新要签名或验证的数据。protected abstract boolean
engineVerify
(byte[] sigBytes) 验证传入的签名。protected boolean
engineVerify
(byte[] sigBytes, int offset, int length) 在指定的字节数组中验证传入的签名,从指定的偏移量开始。
-
Field Details
-
appRandom
应用程序指定的随机源。
-
-
Constructor Details
-
SignatureSpi
public SignatureSpi()子类调用的构造函数。
-
-
Method Details
-
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
- ByteBuffer - 自版本:
- 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 Deprecated.Replaced byengineSetParameter
.将指定的算法参数设置为指定的值。此方法提供了一种通用机制,通过该机制可以设置此对象的各种参数。参数可以是算法的任何可设置参数,例如参数大小,用于签名生成的随机位源(如果适用),或指示是否执行特定但可选计算的指示。对于每个参数,都希望有一个统一的算法特定命名方案,但目前未指定。- 参数:
-
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 Deprecated.获取指定算法参数的值。此方法提供了一种通用机制,通过该机制可以获取此对象的各种参数。参数可以是算法的任何可设置参数,例如参数大小,或用于签名生成的随机位源(如果适用),或指示是否执行特定但可选计算的指示。对于每个参数,希望有一个统一的算法特定命名方案,但目前未指定。- 参数:
-
param
- 参数的字符串名称。 - 返回:
-
表示参数值的对象,如果没有则返回
null
。 - 抛出:
-
InvalidParameterException
- 如果param
是此引擎的无效参数,或在尝试获取此参数时发生其他异常。
-
clone
如果实现支持克隆,则返回克隆。- 覆盖:
-
clone
在类中Object
- 返回:
- 如果实现支持克隆,则返回克隆。
- 抛出:
-
CloneNotSupportedException
- 如果在不支持Cloneable
的实现上调用此方法。 - 参见:
-
engineSetParameter
替代。