Most visited

Recently visited

Added in API level 1

SignatureSpi

public abstract class SignatureSpi
extends Object

java.lang.Object
   ↳ java.security.SignatureSpi
Known Direct Subclasses


该类为Signature类定义 ( SPI ),该类用于提供数字签名算法的功能。 数字签名用于数字数据的认证和完整性保证。

这个类中的所有抽象方法都必须由希望提供特定签名算法实现的每个加密服务提供者来实现。

也可以看看:

Summary

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中已被弃用。替换为engineSetParameter

void engineSetParameter(AlgorithmParameterSpec params)

供应商将此方法重写为使用指定的参数集初始化此签名引擎。

abstract byte[] engineSign()

返回迄今为止更新的所有数据的签名字节。

int engineSign(byte[] outbuf, int offset, int len)

完成此签名操作并将所得签名字节存储在从 outbuf开始的提供的缓冲区 offset

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

Fields

appRandom

Added in API level 1
SecureRandom appRandom

应用程序指定的随机源。

Public constructors

SignatureSpi

Added in API level 1
SignatureSpi ()

Public methods

clone

Added in API level 1
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.

Protected methods

engineGetParameter

Added in API level 1
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.

engineGetParameters

Added in API level 1
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

engineInitSign

Added in API level 1
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.

engineInitSign

Added in API level 1
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.

engineInitVerify

Added in API level 1
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.

engineSetParameter

Added in API level 1
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.

engineSetParameter

Added in API level 1
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

engineSign

Added in API level 1
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.

engineSign

Added in API level 1
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.

engineUpdate

Added in API level 1
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

engineUpdate

Added in API level 1
void engineUpdate (ByteBuffer input)

使用指定的ByteBuffer更新要签名或验证的数据。 处理data.remaining()起始处的字节data.position() 返回时,缓冲区的位置将等于它的极限; 其限制不会改变。

Parameters
input ByteBuffer: the ByteBuffer

engineUpdate

Added in API level 1
void engineUpdate (byte b)

使用指定的字节更新要签名或验证的数据。

Parameters
b byte: the byte to use for the update.
Throws
SignatureException if the engine is not initialized properly.

engineVerify

Added in API level 1
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.

engineVerify

Added in API level 1
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.

Hooray!