JavaTM 2 Platform
Standard Ed. 6

java.security.cert
類別 PKIXParameters

java.lang.Object
  繼承者 java.security.cert.PKIXParameters
所有已實作的介面:
Cloneable, CertPathParameters
直接已知子類別:
PKIXBuilderParameters

public class PKIXParameters
extends Object
implements CertPathParameters

用作 PKIX CertPathValidator 演算法的輸入的參數。

PKIX CertPathValidator 使用這些參數、根據 PKIX 證書路徑驗證演算法來驗證 CertPath

要實例化 PKIXParameters 物件,應用程序必須指定一個或多個由 PKIX 證書路徑驗證演算法所定義的最受信任的 CA。可以使用兩個建構子中的一個來指定最受信任的 CA。應用程序可以調用 PKIXParameters(Set) 來指定一個 TrustAnchor 物件 Set,其中每個物件都標識一個最受信任的 CA。另外,應用程序也可調用 PKIXParameters(KeyStore) 來指定一個 KeyStore 實例,其中包含多個受信任的證書項,每個項都認為是一個最受信任的 CA。

一旦創建了 PKIXParameters 物件,就可以指定其他參數(例如通過調用 setInitialPoliciessetDate),然後沿著要被 CertPathValidator.validate 所驗證的 CertPath 傳遞 PKIXParameters

所有未設置(或被設置為 null)的參數將被設置為該參數的預設值。date 參數的預設值是 null,指示驗證該路徑時的當前時間。其餘參數的預設值是約束最少的。

共時存取

除非另行指定,否則此類別中所定義的方法不是執行緒安全的。需要共時存取單個物件的多個執行緒應該在它們之間實作同步並提供所需的鎖定。對於每個執行緒都操作一個不同物件的多個執行緒而言,無需實作同步。

從以下版本開始:
1.4
另請參見:
CertPathValidator

建構子摘要
PKIXParameters(KeyStore keystore)
          創建一個 PKIXParameters 實例,它根據指定 KeyStore 中所包含的受信證書項產生最受信任的 CA 集。
PKIXParameters(Set<TrustAnchor> trustAnchors)
          創建具有指定最受信任 CA SetPKIXParameters 的實例。
 
方法摘要
 void addCertPathChecker(PKIXCertPathChecker checker)
          向證書路徑檢查器列表中添加一個 PKIXCertPathChecker
 void addCertStore(CertStore store)
          將 CertStore 添加到尋找證書和 CRL 所使用的 CertStore 列表末尾。
 Object clone()
          對此 PKIXParameters 物件進行複製。
 List<PKIXCertPathChecker> getCertPathCheckers()
          返回證書路徑檢查器的 List
 List<CertStore> getCertStores()
          返回用於尋找證書和 CRL 的不可變 CertStore List
 Date getDate()
          返回應該確定證書路徑有效性的時間。
 Set<String> getInitialPolicies()
          返回初始策略標識符(OID 字元串)的不可變 Set,指示出於證書路徑處理的目的,所有這些策略都可被證書使用者接受。
 boolean getPolicyQualifiersRejected()
          獲取 PolicyQualifiersRejected 標誌。
 String getSigProvider()
          返回簽章提供者的名稱,如果未設置,則返回 null
 CertSelector getTargetCertConstraints()
          返回目標證書所需的限制。
 Set<TrustAnchor> getTrustAnchors()
          返回不可變的、最受信任的 CA Set
 boolean isAnyPolicyInhibited()
          檢查當證書中包括了任何策略 OID 時是否應該處理它。
 boolean isExplicitPolicyRequired()
          檢查是否需要顯式策略。
 boolean isPolicyMappingInhibited()
          檢查是否禁止策略映射。
 boolean isRevocationEnabled()
          檢查 RevocationEnabled 標誌。
 void setAnyPolicyInhibited(boolean val)
          設置狀態,以確定當證書中包括了策略 OID 時是否應該處理它。
 void setCertPathCheckers(List<PKIXCertPathChecker> checkers)
          設置其他證書路徑檢查器的 List
 void setCertStores(List<CertStore> stores)
          設置在尋找證書和 CRL 時所使用的 CertStore 列表。
 void setDate(Date date)
          設置應該確定證書路徑有效性的時間。
 void setExplicitPolicyRequired(boolean val)
          設置 ExplicitPolicyRequired 標誌。
 void setInitialPolicies(Set<String> initialPolicies)
          設置初始策略標識符(OID 字元串)的 Set,指示出於證書路徑處理的目的,所有這些策略都可被證書使用者接受。
 void setPolicyMappingInhibited(boolean val)
          設置 PolicyMappingInhibited 標誌。
 void setPolicyQualifiersRejected(boolean qualifiersRejected)
          設置 PolicyQualifiersRejected 標誌。
 void setRevocationEnabled(boolean val)
          設置 RevocationEnabled 標誌。
 void setSigProvider(String sigProvider)
          設置簽章提供者的名稱。
 void setTargetCertConstraints(CertSelector selector)
          設置目標證書所需的限制。
 void setTrustAnchors(Set<TrustAnchor> trustAnchors)
          設置最受信任的 CA Set
 String toString()
          返回描述該參數的格式化字元串。
 
從類別 java.lang.Object 繼承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

PKIXParameters

public PKIXParameters(Set<TrustAnchor> trustAnchors)
               throws InvalidAlgorithmParameterException
創建具有指定最受信任 CA SetPKIXParameters 的實例。該 set 中的每個元素都是一個 TrustAnchor

注意,要複製該 Set 以防對其進行後續修改。

參數:
trustAnchors - TrustAnchorSet
拋出:
InvalidAlgorithmParameterException - 如果指定的 Set 為空 (trustAnchors.isEmpty() == true)
NullPointerException - 如果指定的 Setnull
ClassCastException - 如果該 Set 中任一元素不是 java.security.cert.TrustAnchor 型別的

PKIXParameters

public PKIXParameters(KeyStore keystore)
               throws KeyStoreException,
                      InvalidAlgorithmParameterException
創建一個 PKIXParameters 實例,它根據指定 KeyStore 中所包含的受信證書項產生最受信任的 CA 集。只考慮那些包含受信 X509Certificates 的 keystore 項;忽略所有其他證書型別。

參數:
keystore - 一個 KeyStore,將根據它來產生最受信任的 CA 集
拋出:
KeyStoreException - 如果尚未初始化 keystore
InvalidAlgorithmParameterException - 如果 keystore 不包含一個受信證書項
NullPointerException - 如果 keystore 為 null
方法詳細資訊

getTrustAnchors

public Set<TrustAnchor> getTrustAnchors()
返回不可變的、最受信任的 CA Set

返回:
不可變的 TrustAnchor Set(從不為 null
另請參見:
setTrustAnchors(java.util.Set)

setTrustAnchors

public void setTrustAnchors(Set<TrustAnchor> trustAnchors)
                     throws InvalidAlgorithmParameterException
設置最受信任的 CA Set

注意,要複製該 Set 以防對其進行後續修改。

參數:
trustAnchors - TrustAnchorSet
拋出:
InvalidAlgorithmParameterException - 如果指定的 Set 為空 (trustAnchors.isEmpty() == true)
NullPointerException - 如果指定的 Setnull
ClassCastException - 如果該 Set 中的任一元素不是 java.security.cert.TrustAnchor 型別的
另請參見:
getTrustAnchors()

getInitialPolicies

public Set<String> getInitialPolicies()
返回初始策略標識符(OID 字元串)的不可變 Set,指示出於證書路徑處理的目的,所有這些策略都可被證書使用者接受。預設返回值是一個空 Set,它可以解釋為任意策略均是可接受的。

返回:
初始策略 OID(以 String 的形式)的不可變 Set,或者是空 Set(暗示所有策略均是可接受的)。從不返回 null
另請參見:
setInitialPolicies(java.util.Set)

setInitialPolicies

public void setInitialPolicies(Set<String> initialPolicies)
設置初始策略標識符(OID 字元串)的 Set,指示出於證書路徑處理的目的,所有這些策略都可被證書使用者接受。預設情況下,任意策略(也就是所有策略)都是可接受的,所以想要任意策略都為可接受的使用者不必調用此方法,或者可以用空的 Set(或者 null)調用此方法。

注意,要複製該 Set 以防對其進行後續修改。

參數:
initialPolicies - 初始策略 OID(以 String 格式)的 Set(或者為 null
拋出:
ClassCastException - 如果該 set 中的任一元素不是 String 型別的
另請參見:
getInitialPolicies()

setCertStores

public void setCertStores(List<CertStore> stores)
設置在尋找證書和 CRL 時所使用的 CertStore 列表。可以為 null,在這種情況下將不使用 CertStore。列表中前面出現的 CertStore 可能優先於後面出現的 CertStore 使用。

注意,要複製該 List 以防對其進行後續修改。

參數:
stores - CertStoreList(或者為 null
拋出:
ClassCastException - 如果該 list 中的任一元素不是 java.security.cert.CertStore 型別的
另請參見:
getCertStores()

addCertStore

public void addCertStore(CertStore store)
CertStore 添加到尋找證書和 CRL 所使用的 CertStore 列表末尾。

參數:
store - 要添加的 CertStore。如果為 null,則忽略該 CertStore(不添加到列表中)。

getCertStores

public List<CertStore> getCertStores()
返回用於尋找證書和 CRL 的不可變 CertStore List

返回:
一個不可變的 CertStore List(可能為空,但從不為 null
另請參見:
setCertStores(java.util.List)

setRevocationEnabled

public void setRevocationEnabled(boolean val)
設置 RevocationEnabled 標誌。如果此標誌為 true,則使用底層 PKIX 服務提供者的預設撤消檢查機制。如果此標誌為 false,則禁用(不使用)預設撤消檢查機制。

創建 PKIXParameters 物件時,此標誌被設置為 true。此設置反映了檢查撤消最常見的策略,因為每個服務提供者必須支持撤消檢查是遵守 PKIX 的。當複雜的應用程序沒有實際使用 PKIX 服務提供者的預設撤消檢查機制時,或者使用一個替代的撤消檢查機制來替換(仍通過調用 addCertPathCheckersetCertPathCheckers 方法)時,應該將此標誌設置為 false。

參數:
val - RevocationEnabled 標誌的新值

isRevocationEnabled

public boolean isRevocationEnabled()
檢查 RevocationEnabled 標誌。如果此標誌為 true,則將使用底層 PKIX 服務提供者的預設撤消檢查機制。如果此標誌為 false,則禁用(不使用)預設撤消檢查機制。有關設置此標誌值的更多細節,請參見 setRevocationEnabled 方法。

返回:
RevocationEnabled 標誌的當前值

setExplicitPolicyRequired

public void setExplicitPolicyRequired(boolean val)
設置 ExplicitPolicyRequired 標誌。如果此標誌為 true,則需要在每個證書中顯式地標識一個可接受的策略。預設情況下,ExplicitPolicyRequired 標誌為 false。

參數:
val - 如果需要顯式策略,則為 true;否則為 false

isExplicitPolicyRequired

public boolean isExplicitPolicyRequired()
檢查是否需要顯式策略。如果此標誌為 true,則需要在每個證書中顯式地標識一個可接受的策略。預設情況下,ExplicitPolicyRequired 標誌為 false。

返回:
如果需要顯式策略,則返回 true;否則返回 false

setPolicyMappingInhibited

public void setPolicyMappingInhibited(boolean val)
設置 PolicyMappingInhibited 標誌。如果此標誌為 true,則禁止策略映射。預設情況下,不禁止策略映射(其標誌為 false)。

參數:
val - 如果禁止策略映射,則為 true;否則為 false

isPolicyMappingInhibited

public boolean isPolicyMappingInhibited()
檢查是否禁止策略映射。如果此標誌為 true,則禁止策略映射。預設情況下,不禁止策略映射(其標誌為 false)。

返回:
如果禁止策略映射,則返回 true;否則返回 false

setAnyPolicyInhibited

public void setAnyPolicyInhibited(boolean val)
設置狀態,以確定當證書中包括了策略 OID 時是否應該處理它。預設情況下,不禁止任何策略 OID(isAnyPolicyInhibited() 返回 false)。

參數:
val - 如果要禁止任何策略 OID,則為 true;否則為 false

isAnyPolicyInhibited

public boolean isAnyPolicyInhibited()
檢查當證書中包括了任何策略 OID 時是否應該處理它。

返回:
如果禁止任何策略 OID,則返回 true;否則返回 false

setPolicyQualifiersRejected

public void setPolicyQualifiersRejected(boolean qualifiersRejected)
設置 PolicyQualifiersRejected 標誌。如果此標誌為 true,則在其被標記為關鍵的證書策略擴展中包括策略限定符的證書被拒絕。如果該標誌為 false,則不拒絕此種證書。

創建 PKIXParameters 物件後,此標誌設置為 true。此設置反映了處理策略限定符最常見(也是最簡單的)的策略。希望使用更複雜策略的應用程序必須將此標誌設置為 false。

注意,PKIX 證書路徑驗證演算法規定,對標記為關鍵的證書策略擴展中的策略限定符必須加以處理和驗證。否則必須放棄該證書路徑。如果 policyQualifiersRejected 標誌設置為 false,那麼為了遵守 PKIX ,由應用程序以此方式來驗證所有的策略限定符。

參數:
qualifiersRejected - PolicyQualifiersRejected 標誌的新值
另請參見:
getPolicyQualifiersRejected(), PolicyQualifierInfo

getPolicyQualifiersRejected

public boolean getPolicyQualifiersRejected()
獲取 PolicyQualifiersRejected 標誌。如果此標誌為 true,則在其被標記為關鍵的證書策略擴展中包括策略限定符的證書被拒絕。如果該標誌為 false,則不拒絕此種證書。

創建 PKIXParameters 物件後,此標誌設置為 true。此設置反映了處理策略限定符最常見(也是最簡單的)的策略。希望使用更複雜策略的應用程序必須將此標誌設置為 false。

返回:
PolicyQualifiersRejected 標誌的當前值
另請參見:
setPolicyQualifiersRejected(boolean)

getDate

public Date getDate()
返回應該確定證書路徑有效性的時間。如果返回 null,則使用當前時間。

注意,要複製返回的 Date 以防對其進行後續修改。

返回:
Date,如果未設置,則返回 null
另請參見:
setDate(java.util.Date)

setDate

public void setDate(Date date)
設置應該確定證書路徑有效性的時間。如果返回 null,則使用當前時間。

注意,要複製此處提供的 Date 以防對其進行後續修改。

參數:
date - Date,如果使用當前時間,則為 null
另請參見:
getDate()

setCertPathCheckers

public void setCertPathCheckers(List<PKIXCertPathChecker> checkers)
設置其他證書路徑檢查器的 List。如果指定的 List 套件含不是 PKIXCertPathChecker 的物件,則忽略它。

每個指定的 PKIXCertPathChecker 都對證書進行額外的檢查。通常,這些檢查是對證書中所包含的私有擴展進行處理和驗證。應該使用執行該檢查所需的所有初始化參數對每個 PKIXCertPathChecker 進行實例化。

此方法允許複雜的應用程序擴展 PKIX CertPathValidatorCertPathBuilder。依次由 PKIX CertPathValidatorCertPathBuilder 為每個要處理或驗證的證書調用每個指定的 PKIXCertPathChecker

不管是否設置了這些額外的 PKIXCertPathChecker,PKIX CertPathValidatorCertPathBuilder 都必須對每個證書執行所有所需的 PKIX 檢查。此規則的一個例外是,RevocationEnabled 標誌設置為 false 的情況(請參見 setRevocationEnabled 方法)。

注意,將複製此處提供的 List,並且複製該 List 中的所有 PKIXCertPathChecker 以防對其進行後續修改。

參數:
checkers - PKIXCertPathCheckerList。可以為 null,在這種情況下將不使用其他的檢查器。
拋出:
ClassCastException - 如果該 List 中的任一元素不是 java.security.cert.PKIXCertPathChecker 型別的
另請參見:
getCertPathCheckers()

getCertPathCheckers

public List<PKIXCertPathChecker> getCertPathCheckers()
返回證書路徑檢查器的 List。返回的 List 是不可變的,並且複製該 List 中的所有 PKIXCertPathChecker 以防對其進行後續修改。

返回:
一個不可變的 PKIXCertPathChecker List(可能為空,但從不為 null
另請參見:
setCertPathCheckers(java.util.List)

addCertPathChecker

public void addCertPathChecker(PKIXCertPathChecker checker)
向證書路徑檢查器列表中添加一個 PKIXCertPathChecker。有關詳細資訊,請參見 setCertPathCheckers 方法。

注意,要複製該 PKIXCertPathChecker 以防對其進行後續修改。

參數:
checker - 要添加到檢查列表中的 PKIXCertPathChecker。如果為 null,則忽略該檢查器(不添加到列表中)。

getSigProvider

public String getSigProvider()
返回簽章提供者的名稱,如果未設置,則返回 null

返回:
簽章提供者的名稱(或者返回 null
另請參見:
setSigProvider(java.lang.String)

setSigProvider

public void setSigProvider(String sigProvider)
設置簽章提供者的名稱。創建 Signature 物件時將首選該指定的提供者。如果為 null 或未設置,則將使用所找到的、支持該演算法的第一個提供者。

參數:
sigProvider - 簽章提供者的名稱(或者為 null
另請參見:
getSigProvider()

getTargetCertConstraints

public CertSelector getTargetCertConstraints()
返回目標證書所需的限制。以 CertSelector 實例的形式返回這些限制。如果為 null,則未定義限制。

注意,要複製返回的 CertSelector 以防對其進行後續修改。

返回:
指定目標證書限制的 CertSelector(或者返回 null
另請參見:
setTargetCertConstraints(java.security.cert.CertSelector)

setTargetCertConstraints

public void setTargetCertConstraints(CertSelector selector)
設置目標證書所需的限制。以 CertSelector 實例的形式指定這些限制。如果為 null,則未定義限制。

注意,要複製所指定的 CertSelector 以防對其進行後續修改。

參數:
selector - 指定目標證書限制的 CertSelector(或者為 null
另請參見:
getTargetCertConstraints()

clone

public Object clone()
對此 PKIXParameters 物件進行複製。對副本的更改不會影響原件,反之亦然。

指定者:
介面 CertPathParameters 中的 clone
覆寫:
類別 Object 中的 clone
返回:
PKIXParameters 物件的副本
另請參見:
Cloneable

toString

public String toString()
返回描述該參數的格式化字元串。

覆寫:
類別 Object 中的 toString
返回:
描述該參數的格式化字元串。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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