public abstract class SignatureSpi
extends Object
java.lang.Object | |
↳ | java.security.SignatureSpi |
Known Direct Subclasses |
该类为Signature
类定义 ( SPI ),该类用于提供数字签名算法的功能。 数字签名用于数字数据的认证和完整性保证。 。
这个类中的所有抽象方法都必须由希望提供特定签名算法实现的每个加密服务提供者来实现。
也可以看看:
Fields |
|
---|---|
protected SecureRandom |
appRandom 应用程序指定的随机源。 |
Public constructors |
|
---|---|
SignatureSpi() |
Public methods |
|
---|---|
Object |
clone() 如果实现可复制,则返回一个克隆。 |
Protected methods |
|
---|---|
abstract Object |
engineGetParameter(String param) 此方法在API级别1中已弃用。已弃用。 |
AlgorithmParameters |
engineGetParameters() 提供程序将覆盖此方法以返回此签名引擎使用的参数;如果此签名引擎不使用任何参数,则此方法为null。 |
void |
engineInitSign(PrivateKey privateKey, SecureRandom random) 使用指定的私钥和签名操作的随机源初始化此签名对象。 |
abstract void |
engineInitSign(PrivateKey privateKey) 使用用于签名操作的指定私钥初始化此签名对象。 |
abstract void |
engineInitVerify(PublicKey publicKey) 使用指定的公钥为该验证操作初始化此签名对象。 |
abstract void |
engineSetParameter(String param, Object value) 此方法在API级别1中已被弃用。替换为 |
void |
engineSetParameter(AlgorithmParameterSpec params) 供应商将此方法重写为使用指定的参数集初始化此签名引擎。 |
abstract byte[] |
engineSign() 返回迄今为止更新的所有数据的签名字节。 |
int |
engineSign(byte[] outbuf, int offset, int len) 完成此签名操作并将所得签名字节存储在从 |
abstract void |
engineUpdate(byte[] b, int off, int len) 使用指定的字节数组更新要签名或验证的数据,从指定的偏移量开始。 |
void |
engineUpdate(ByteBuffer input) 使用指定的ByteBuffer更新要签名或验证的数据。 |
abstract void |
engineUpdate(byte b) 使用指定的字节更新要签名或验证的数据。 |
boolean |
engineVerify(byte[] sigBytes, int offset, int length) 在指定的字节数组中验证传入的签名,从指定的偏移量开始。 |
abstract boolean |
engineVerify(byte[] sigBytes) 验证传入的签名。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
Object clone ()
如果实现可复制,则返回一个克隆。
Returns | |
---|---|
Object |
a clone if the implementation is cloneable. |
Throws | |
---|---|
CloneNotSupportedException |
if this is called on an implementation that does not support Cloneable . |
Object engineGetParameter (String param)
此方法在API级别1中已弃用。
已过时。
获取指定算法参数的值。 这种方法提供了一个通用机制,通过它可以获得这个对象的各种参数。 参数可以是算法的任何可设置参数,例如参数大小或用于签名生成的随机比特源(如果适当的话),或者是否执行特定但可选的计算的指示。 针对每个参数的统一算法特定命名方案是可取的,但此时未指定。
Parameters | |
---|---|
param |
String : the string name of the parameter. |
Returns | |
---|---|
Object |
the object that represents the parameter value, or null if there is none. |
Throws | |
---|---|
InvalidParameterException |
if param is an invalid parameter for this engine, or another exception occurs while trying to get this parameter. |
AlgorithmParameters engineGetParameters ()
提供程序将覆盖此方法以返回此签名引擎使用的参数;如果此签名引擎不使用任何参数,则此方法为null。
返回的参数可能与用于初始化此签名引擎的参数相同,或者如果此签名引擎需要算法参数但未用任何初始化参数引擎执行,则可能包含由基础签名实现使用的默认和随机生成参数值的组合。
Returns | |
---|---|
AlgorithmParameters |
the parameters used with this signature engine, or null if this signature engine does not use any parameters |
Throws | |
---|---|
UnsupportedOperationException |
if this method is not overridden by a provider |
void engineInitSign (PrivateKey privateKey, SecureRandom random)
使用指定的私钥和签名操作的随机源初始化此签名对象。
这个具体的方法已被添加到这个以前定义的抽象类。 (为了向后兼容,它不能是抽象的。)
Parameters | |
---|---|
privateKey |
PrivateKey : the private key of the identity whose signature will be generated. |
random |
SecureRandom : the source of randomness |
Throws | |
---|---|
InvalidKeyException |
if the key is improperly encoded, parameters are missing, and so on. |
void engineInitSign (PrivateKey privateKey)
使用用于签名操作的指定私钥初始化此签名对象。
Parameters | |
---|---|
privateKey |
PrivateKey : the private key of the identity whose signature will be generated. |
Throws | |
---|---|
InvalidKeyException |
if the key is improperly encoded, parameters are missing, and so on. |
void engineInitVerify (PublicKey publicKey)
使用指定的公钥为该验证操作初始化此签名对象。
Parameters | |
---|---|
publicKey |
PublicKey : the public key of the identity whose signature is going to be verified. |
Throws | |
---|---|
InvalidKeyException |
if the key is improperly encoded, parameters are missing, and so on. |
void engineSetParameter (String param, Object value)
此方法在API级别1中已弃用。
由engineSetParameter
。
将指定的算法参数设置为指定的值。 这种方法提供了一个通用机制,通过它可以设置这个对象的各种参数。 参数可以是算法的任何可设置参数,例如参数大小或用于签名生成的随机比特源(如果适当的话),或者是否执行特定但可选的计算的指示。 针对每个参数的统一算法特定命名方案是可取的,但此时未指定。
Parameters | |
---|---|
param |
String : the string identifier of the parameter. |
value |
Object : the parameter value. |
Throws | |
---|---|
InvalidParameterException |
if param is an invalid parameter for this signature algorithm engine, the parameter is already set and cannot be set again, a security exception occurs, and so on. |
void engineSetParameter (AlgorithmParameterSpec params)
供应商将此方法重写为使用指定的参数集初始化此签名引擎。
Parameters | |
---|---|
params |
AlgorithmParameterSpec : the parameters |
Throws | |
---|---|
UnsupportedOperationException |
if this method is not overridden by a provider |
InvalidAlgorithmParameterException |
if this method is overridden by a provider and the given parameters are inappropriate for this signature engine |
byte[] engineSign ()
返回迄今为止更新的所有数据的签名字节。 签名的格式取决于基础签名方案。
Returns | |
---|---|
byte[] |
the signature bytes of the signing operation's result. |
Throws | |
---|---|
SignatureException |
if the engine is not initialized properly or if this signature algorithm is unable to process the input data provided. |
int engineSign (byte[] outbuf, int offset, int len)
完成此签名操作并将所得签名字节存储在所提供的缓冲区outbuf
,从offset
开始。 签名的格式取决于基础签名方案。
签名实现被重置为初始状态(在调用engineInitSign
方法之后的状态),并且可以重复使用以使用相同的私钥生成更多签名。 这个方法应该是抽象的,但是我们把它具体化为二进制兼容性。 有知识的提供者应该重写这个方法。
Parameters | |
---|---|
outbuf |
byte : buffer for the signature result. |
offset |
int : offset into outbuf where the signature is stored. |
len |
int : number of bytes within outbuf allotted for the signature. Both this default implementation and the SUN provider do not return partial digests. If the value of this parameter is less than the actual signature length, this method will throw a SignatureException. This parameter is ignored if its value is greater than or equal to the actual signature length. |
Returns | |
---|---|
int |
the number of bytes placed into outbuf |
Throws | |
---|---|
SignatureException |
if the engine is not initialized properly, if this signature algorithm is unable to process the input data provided, or if len is less than the actual signature length. |
void engineUpdate (byte[] b, int off, int len)
使用指定的字节数组更新要签名或验证的数据,从指定的偏移量开始。
Parameters | |
---|---|
b |
byte : the array of bytes |
off |
int : the offset to start from in the array of bytes |
len |
int : the number of bytes to use, starting at offset |
Throws | |
---|---|
SignatureException |
if the engine is not initialized properly |
void engineUpdate (ByteBuffer input)
使用指定的ByteBuffer更新要签名或验证的数据。 处理data.remaining()
起始处的字节data.position()
。 返回时,缓冲区的位置将等于它的极限; 其限制不会改变。
Parameters | |
---|---|
input |
ByteBuffer : the ByteBuffer |
void engineUpdate (byte b)
使用指定的字节更新要签名或验证的数据。
Parameters | |
---|---|
b |
byte : the byte to use for the update. |
Throws | |
---|---|
SignatureException |
if the engine is not initialized properly. |
boolean engineVerify (byte[] sigBytes, int offset, int length)
在指定的字节数组中验证传入的签名,从指定的偏移量开始。
注意:子类应该覆盖默认实现。
Parameters | |
---|---|
sigBytes |
byte : the signature bytes to be verified. |
offset |
int : the offset to start from in the array of bytes. |
length |
int : the number of bytes to use, starting at offset. |
Returns | |
---|---|
boolean |
true if the signature was verified, false if not. |
Throws | |
---|---|
SignatureException |
if the engine is not initialized properly, the passed-in signature is improperly encoded or of the wrong type, if this signature algorithm is unable to process the input data provided, etc. |
boolean engineVerify (byte[] sigBytes)
验证传入的签名。
Parameters | |
---|---|
sigBytes |
byte : the signature bytes to be verified. |
Returns | |
---|---|
boolean |
true if the signature was verified, false if not. |
Throws | |
---|---|
SignatureException |
if the engine is not initialized properly, the passed-in signature is improperly encoded or of the wrong type, if this signature algorithm is unable to process the input data provided, etc. |