JavaTM 2 Platform
Standard Ed. 6

java.security
類別 SignatureSpi

java.lang.Object
  繼承者 java.security.SignatureSpi
直接已知子類別:
Signature

public abstract class SignatureSpi
extends Object

此類別為 Signature 類別定義了服務提供者介面 (SPI),可用來提供數位簽章演算法功能。數位簽章用來保證數字資料的真實性和完整性。

此類別中的所有抽象方法都必須由每個想要提供實作特定簽章演算法的加密服務提供者實作。

另請參見:
Signature

欄位摘要
protected  SecureRandom appRandom
          應用程序指定的隨機源。
 
建構子摘要
SignatureSpi()
           
 
方法摘要
 Object clone()
          如果此實作可以複製,則返回一個副本。
protected abstract  Object engineGetParameter(String param)
          已過時。  
protected  AlgorithmParameters engineGetParameters()
          此方法將由提供者覆寫,以返回與此簽章引擎配合使用的參數,如果此簽章引擎未使用任何參數,則返回 null。
protected abstract  void engineInitSign(PrivateKey privateKey)
          通過用於簽章操作的指定私鑰初始化此簽章物件。
protected  void engineInitSign(PrivateKey privateKey, SecureRandom random)
          通過用於簽章操作的指定私鑰和隨機源初始化此簽章物件。
protected abstract  void engineInitVerify(PublicKey publicKey)
          通過用於驗證操作的指定公鑰初始化此簽章物件。
protected  void engineSetParameter(AlgorithmParameterSpec params)
          此方法將由提供者覆寫,以便使用指定的參數設置初始化此簽章引擎。
protected abstract  void engineSetParameter(String param, Object value)
          已過時。 engineSetParameter 取代。
protected abstract  byte[] engineSign()
          返回迄今為止所有更新的資料的簽章位元組。
protected  int engineSign(byte[] outbuf, int offset, int len)
          完成此簽章操作,並從 offset 開始將得到的簽章位元組保存在提供的緩衝區 outbuf 中。
protected abstract  void engineUpdate(byte b)
          使用指定的位元組更新要簽章或驗證的資料。
protected abstract  void engineUpdate(byte[] b, int off, int len)
          使用指定的 byte 陣列,從指定的偏移量開始更新要簽章或驗證的資料。
protected  void engineUpdate(ByteBuffer input)
          使用指定的 ByteBuffer 更新要簽章或驗證的資料。
protected abstract  boolean engineVerify(byte[] sigBytes)
          驗證傳入的簽章。
protected  boolean engineVerify(byte[] sigBytes, int offset, int length)
          在指定的 byte 陣列中,從指定的偏移量處開始,驗證傳入的簽章。
 
從類別 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
通過用於驗證操作的指定公鑰初始化此簽章物件。

參數:
publicKey - 其簽章將被驗證的標識的公鑰。
拋出:
InvalidKeyException - 如果密鑰未得到正確編碼、參數丟失等等。

engineInitSign

protected abstract void engineInitSign(PrivateKey privateKey)
                                throws InvalidKeyException
通過用於簽章操作的指定私鑰初始化此簽章物件。

參數:
privateKey - 將產生其簽章的標識的私鑰。
拋出:
InvalidKeyException - 如果密鑰未得到正確編碼、參數丟失等等。

engineInitSign

protected void engineInitSign(PrivateKey privateKey,
                              SecureRandom random)
                       throws InvalidKeyException
通過用於簽章操作的指定私鑰和隨機源初始化此簽章物件。

已將此具體方法添加到了先前定義過的抽象類別中。(為向後相容,它不能為抽象方法)。

參數:
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
使用指定的 byte 陣列,從指定的偏移量開始更新要簽章或驗證的資料。

參數:
b - byte 陣列
off - byte 陣列開始處的偏移量
len - 要使用的位元組數(從偏移量開始處計算)
拋出:
SignatureException - 如果引擎未得到正確初始化

engineUpdate

protected void engineUpdate(ByteBuffer input)
使用指定的 ByteBuffer 更新要簽章或驗證的資料。處理從 data.position() 處開始的 data.remaining() 位元組。返回時,緩衝區的位置將等於其限制;其限制並未改變。

參數:
input - the ByteBuffer
從以下版本開始:
1.5

engineSign

protected abstract byte[] engineSign()
                              throws SignatureException
返回迄今為止所有更新的資料的簽章位元組。簽章的格式取決於底層簽章方案。

返回:
簽章操作結果的簽章位元組。
拋出:
SignatureException - 如果引擎未得到正確初始化,或者此簽章演算法無法處理所提供的輸入資料。

engineSign

protected int engineSign(byte[] outbuf,
                         int offset,
                         int len)
                  throws SignatureException
完成此簽章操作,並從 offset 開始將得到的簽章位元組保存在提供的緩衝區 outbuf 中。簽章的格式取決於基本簽章方案。

此簽章實作將被重新設置到其初始狀態(對其中的一種 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
在指定的 byte 陣列中,從指定的偏移量處開始,驗證傳入的簽章。

註:子類別應改寫此預設實作。

參數:
sigBytes - 要驗證的簽章位元組。
offset - byte 陣列中起始處的偏移量。
length - 要使用的位元組數(從偏移量起始處計算)。
返回:
如果簽章得到驗證,則返回 true,否則將返回 false。
拋出:
SignatureException - 如果引擎未得到正確初始化,或傳入的簽章未被正確編碼或型別錯誤,或者此簽章演算法無法處理所提供的輸入資料等等。
從以下版本開始:
1.4

engineSetParameter

@Deprecated
protected abstract void engineSetParameter(String param,
                                                      Object value)
                                    throws InvalidParameterException
已過時。 engineSetParameter 取代。

將指定的演算法參數設置為指定的值。此方法提供了一種通用機制,通過它可以設置此物件的各種參數。參數可以是演算法的任何可設置參數,如參數大小、簽章產生的隨機源位(如果適當),或者表示是否執行具體但可選的計算。每個參數都需要統一的、特定於演算法的命名方案,但此時尚未指定這種方案。

參數:
param - 參數的字元串標示符。
value - 參數值。
拋出:
InvalidParameterException - 如果 param 是此演算法引擎的無效參數,或者已經設置參數並且不能重新設置,或者發生了安全異常等等。

engineSetParameter

protected void engineSetParameter(AlgorithmParameterSpec params)
                           throws InvalidAlgorithmParameterException

此方法將由提供者覆寫,以便使用指定的參數設置初始化此簽章引擎。

參數:
params - 參數
拋出:
UnsupportedOperationException - 如果提供者未覆寫此方法
InvalidAlgorithmParameterException - 如果提供者未覆寫此方法並且指定的參數不適合此簽章引擎

engineGetParameters

protected AlgorithmParameters engineGetParameters()

此方法將由提供者覆寫,以返回與此簽章引擎配合使用的參數,如果此簽章引擎未使用任何參數,則返回 null。

返回的參數可能與用來初始化此簽章引擎的參數相同;如果此簽章引擎需要演算法參數但卻未使用任何參數進行初始化,則返回的參數可能會包含由底層簽章實作使用的預設和隨機產生的參數值的組合。

返回:
與此簽章引擎一塊使用的參數,如果此簽章引擎未使用任何參數,則返回 null
拋出:
UnsupportedOperationException - 如果提供者未覆寫此方法
從以下版本開始:
1.4

engineGetParameter

@Deprecated
protected abstract Object engineGetParameter(String param)
                                      throws InvalidParameterException
已過時。 

獲取指定演算法參數的值。此方法提供了一種通用機制,通過它能夠獲取此物件的各種參數。參數可以是演算法的任何可設置參數,如參數大小、簽章產生的隨機源位(如果適當),或者表示是否執行具體但可選的計算。每個參數都需要統一的、特定於演算法的命名方案,但此時尚未指定這種方案。

參數:
param - 參數的字元串名稱。
返回:
表示參數值的物件,如果沒有,則返回 null。
拋出:
InvalidParameterException - 如果 param 是此引擎的無效參數,或者嘗試獲取此參數時發生了其他異常。

clone

public Object clone()
             throws CloneNotSupportedException
如果此實作可以複製,則返回一個副本。

覆寫:
類別 Object 中的 clone
返回:
如果此實作可以複製,則返回一個副本。
拋出:
CloneNotSupportedException - 如果調用一個不支持 Cloneable 的實作。
另請參見:
Cloneable

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only