模块 java.base

类 SignatureSpi

java.lang.Object
java.security.SignatureSpi
已知子类:
Signature

public abstract class SignatureSpi extends Object
这个类定义了服务提供商接口 (SPI) 用于 Signature 类,用于提供数字签名算法的功能。数字签名用于数字数据的认证和完整性保证。

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

自从:
1.2
参见:
  • 字段摘要

    字段
    修饰符和类型
    Field
    描述
    protected SecureRandom
    应用程序指定的随机源。
  • 构造方法总结

    构造方法
    构造方法
    描述
    子类调用的构造方法。
  • 方法总结

    修饰符和类型
    方法
    描述
    如果实现是可克隆的,则返回一个克隆。
    protected abstract Object
    已弃用。 
    返回与此 Signature 对象一起使用的参数。
    protected abstract void
    使用指定的私钥初始化此 Signature 对象以进行签名操作。
    protected void
    engineInitSign(PrivateKey privateKey, SecureRandom random)
    使用指定的私钥和签名操作的随机源初始化此 Signature 对象。
    protected abstract void
    使用指定的公钥初始化此 Signature 对象以进行验证操作。
    protected abstract void
    已弃用。
    替换为 engineSetParameter
    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
    使用指定的 ByteBuffer 更新要签名或验证的数据。
    protected abstract boolean
    engineVerify(byte[] sigBytes)
    验证传入的签名。
    protected boolean
    engineVerify(byte[] sigBytes, int offset, int length)
    从指定的偏移量开始,验证指定字节数组中传入的签名。

    在类 java.lang.Object 中声明的方法

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 字段详细信息

    • appRandom

      protected SecureRandom  appRandom
      应用程序指定的随机源。
  • 构造方法详细信息

    • SignatureSpi

      public SignatureSpi()
      子类调用的构造方法。
  • 方法详情

    • engineInitVerify

      protected abstract void engineInitVerify(PublicKey  publicKey) throws InvalidKeyException
      使用指定的公钥初始化此 Signature 对象以进行验证操作。
      参数:
      publicKey - 要验证其签名的身份的公钥。
      抛出:
      InvalidKeyException - 如果密钥编码不正确、参数丢失等。
    • engineInitSign

      protected abstract void engineInitSign(PrivateKey  privateKey) throws InvalidKeyException
      使用指定的私钥初始化此 Signature 对象以进行签名操作。
      参数:
      privateKey - 将生成其签名的身份的私钥。
      抛出:
      InvalidKeyException - 如果密钥编码不正确、参数丢失等。
    • engineInitSign

      protected void engineInitSign(PrivateKey  privateKey, SecureRandom  random) throws InvalidKeyException
      使用指定的私钥和签名操作的随机源初始化此 Signature 对象。

      此具体方法已添加到此先前定义的抽象类中。 (为了向后兼容,它不能是抽象的。)

      参数:
      privateKey - 将生成其签名的身份的私钥。
      random - 随机源
      抛出:
      InvalidKeyException - 如果密钥编码不正确、参数丢失等。
    • engineUpdate

      protected abstract void engineUpdate(byte b) throws SignatureException
      使用指定的字节更新要签名或验证的数据。
      参数:
      b - 用于更新的字节。
      抛出:
      SignatureException - 如果引擎未正确初始化。
    • engineUpdate

      protected abstract void engineUpdate(byte[] b, int off, int len) throws SignatureException
      使用指定的字节数组从指定的偏移量开始更新要签名或验证的数据。
      参数:
      b - 字节数组
      off - 字节数组中的起始偏移量
      len - 要使用的字节数,从偏移量开始
      抛出:
      SignatureException - 如果引擎未正确初始化
    • engineUpdate

      protected void engineUpdate(ByteBuffer  input)
      使用指定的 ByteBuffer 更新要签名或验证的数据。处理从 data.position() 开始的 data.remaining() 字节。返回时,缓冲区的位置将等于其限制;它的限制不会改变。
      参数:
      input - 字节缓冲区
      自从:
      1.5
    • engineSign

      protected abstract byte[] engineSign() throws SignatureException
      返回到目前为止更新的所有数据的签名字节。签名的格式取决于底层签名方案。
      返回:
      签名操作结果的签名字节。
      抛出:
      SignatureException - 如果引擎未正确初始化或此签名算法无法处理提供的输入数据。
    • engineSign

      protected int engineSign(byte[] outbuf, int offset, int len) throws SignatureException
      完成此签名操作并将生成的签名字节存储在提供的缓冲区 outbuf 中,从 offset 开始。签名的格式取决于底层签名方案。

      签名实现重置为其初始状态(调用 engineInitSign 方法之一后所处的状态),并且可以重复使用以使用相同的私钥生成更多签名。这个方法应该是抽象的,但我们为了二进制兼容性而将其具体化。知识渊博的提供者应该覆盖此方法。

      参数:
      outbuf - 签名结果的缓冲区。
      offset - 偏移到存储签名的 outbuf
      len - outbuf 中分配给签名的字节数。此默认实现和 SUN 提供程序都不会返回部分摘要。如果此参数的值小于实际签名长度,则此方法将抛出 SignatureException 。如果该参数的值大于或等于实际签名长度,则忽略该参数。
      返回:
      放入 outbuf 的字节数
      抛出:
      SignatureException - 如果引擎未正确初始化,如果此签名算法无法处理提供的输入数据,或者如果 len 小于实际签名长度。
      自从:
      1.2
    • engineVerify

      protected abstract boolean engineVerify(byte[] sigBytes) throws SignatureException
      验证传入的签名。
      参数:
      sigBytes - 要验证的签名字节。
      返回:
      true 如果签名被验证,false 如果没有。
      抛出:
      SignatureException - 如果引擎未正确初始化,传入的签名编码不正确或类型错误,如果此签名算法无法处理提供的输入数据等。
    • engineVerify

      protected boolean engineVerify(byte[] sigBytes, int offset, int length) throws SignatureException
      从指定的偏移量开始,验证指定字节数组中传入的签名。

      注意:子类应该重写默认实现。

      参数:
      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

      protected AlgorithmParameters  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

      public Object  clone() throws CloneNotSupportedException
      如果实现是可克隆的,则返回一个克隆。
      重写:
      clone 在类 Object
      返回:
      如果实现是可克隆的,则为克隆。
      抛出:
      CloneNotSupportedException - 如果在不支持 Cloneable 的实现上调用它。
      参见: