Classi di parametri algoritmo

Classi che implementano l'interfaccia AlgorithmParameterSpec .

La classe CCAAlgorithmParameterSpec

Questa classe (che implementa l'interfaccia AlgorithmParameterSpec ) specifica se la chiave AES, DES o DES triplo da generare o da decodificare è una chiave hardware segreta e se è memorizzata nell'area di memorizzazione della chiave CCA.

Nel caso predefinito, un oggetto di questa classe viene creato senza specificare un tipo di chiave e viene passato al metodo init() di un AESKeyGenerator, un DESKeyGeneratoro un DESedeKeyGenerator. In questo caso, una chiamata successiva a generateKey() restituirà un oggetto chiave che contiene la chiave richiesta, codificata utilizzando la chiave primaria dell'host.

Un oggetto CCAAlgorithmParameterSpec può essere usato per specificare la forza (dimensione) della chiave da generare.

Un oggetto CCAAlgorithmParameterSpec può essere utilizzato per specificare il tipo di wrapping del token chiave CCA da utilizzare per una chiave DES o DESede di tipo CKDS o SECURE_INTERNAL_TOKEN.

Se l'oggetto CCAAlgorithmParameterSpec viene utilizzato per generare una chiave di tipo CKDS, è possibile utilizzare CCAAlgorithmParameterSpec per specificare l'etichetta desiderata da utilizzare per memorizzare la chiave all'interno dell'area di archiviazione delle chiavi CCA. Se viene specificata un'etichetta, deve essere univoca nell'area di archiviazione delle chiavi CCA e deve seguire le regole CCA per le etichette. Se non viene specificata alcuna etichetta per una nuova voce CCA, il metodo KeyGenerator generateKey() ne crea una automaticamente.

Un oggetto CCAAlgorithmParameterSpec può essere utilizzato anche per specificare esplicitamente il tipo di chiave da creare:

  • CCAAlgorithmParameterSpec.CKDS può essere passato al costruttore CCAAlgorithmParameterSpec e l'oggetto risultante può essere passato al metodo init() di un AESKeyGenerator, un DESKeyGeneratoro un DESedeKeyGenerator. In questo caso, una chiamata successiva a generateKey() restituisce un oggetto chiave che contiene l'etichetta CCA della chiave codificata utilizzando la chiave primaria host e memorizzata nell'area di memorizzazione delle chiavi CCA del sistema.
  • CCAAlgorithmParameterSpec.SECURE_INTERNAL_TOKEN può essere passato al costruttore CCAAlgorithmParameterSpec e l'oggetto risultante può essere passato al metodo init() di un AESKeyGenerator, un DESKeyGeneratoro un DESedeKeyGenerator. In questo caso, una chiamata successiva a generateKey() restituirà un oggetto chiave che contiene la chiave richiesta, codificata utilizzando la chiave primaria dell'host. Questa chiave può essere generata anche utilizzando una classe KeyGenerator e passando un oggetto CCAAlgorithmParameterSpec , creato senza specificare un tipo di chiave, al metodo KeyGenerator init() .
  • CCAAlgorithmParameterSpec.CLEAR può essere passato al costruttore CCAAlgorithmParameterSpec e l'oggetto risultante può essere passato al metodo init() di un AESKeyGenerator, un DESKeyGeneratoro un DESedeKeyGenerator. In tal caso, una chiamata successiva a generateKey() restituirà un oggetto chiave che contiene il materiale della chiave chiara per la chiave richiesta. Questa chiave può essere generata anche utilizzando una classe KeyGenerator senza passare un oggetto CCAAlgorithmParameterSpec al metodo KeyGenerator init() .
CCAAlgorithmParameterSpec dispone dei seguenti metodi costruttore:
public CCAAlgorithmParameterSpec()
public CCAAlgorithmParameterSpec(int size)
public CCAAlgorithmParameterSpec(byte hwType)
public CCAAlgorithmParameterSpec(int size,byte hwType)
public CCAAlgorithmParameterSpec(int size,byte hwType,String label)
public CCAAlgorithmParameterSpec(byte hwType,String label)
public CCAAlgorithmParameterSpec(int size, byte hwType, String label, byte wrappingMode)

A questi metodi costruttore si applicano le seguenti limitazioni dei parametri:

  • Il parametro size deve essere valido per l'algoritmo specifico di KeyGenerator a cui viene passato questo CCAAlgorithmParameterSpec .
  • Il parametro hwType deve essere uno dei seguenti valori costanti:
    • CCAAlgorithmParameterSpec.CLEAR
    • CCAAlgorithmParameterSpec.SECURE_INTERNAL_TOKEN
    • CCAAlgorithmParameterSpec.CKDS
  • Il parametro label deve essere valido per il componente CCA, in base alle regole definite per ICSF su z/OS®.
  • Il parametro wrappingMode viene utilizzato per specificare il tipo di impacchettamento della chiave che si desidera utilizzare da CCA quando si generano le chiavi DES o DESede. Altri tipi di chiave, come AES, non rispettano il valore della modalità di impacchettamento della chiave perché sono sempre generati con la modalità di impacchettamento predefinita di sistema definita per ICSF su z/OS. I valori accettabili per mode includono ECB, CBC e DEFAULT (il caso viene ignorato per questi valori). Quando si utilizza questo indicatore, si riceve un errore nelle condizioni seguenti:
    • Quando si genera una chiave che non è di tipo DES o DESede. L'impacchettamento della chiave migliorato è supportato solo per le chiavi DES e DESede.
    • Se non è stato specificato ECB, CBC o DEFAULT per la modalità.
    • Se è stato specificato l'indicatore -wrappingMode quando è stata creata una chiave CLEAR. La modalità di wrapping della chiave avanzata è supportata solo quando si creano tipi di chiavi SECURE_INTERNAL_TOKEN e CKDS.

La classe CCAAlgorithmParameterSpec ha i seguenti metodi.

Metodi di dimensione chiave
Questi metodi impostano o restituiscono la dimensione della chiave specificata facoltativamente per il metodo costruttore CCAAlgorithmParameterSpec :
  • public int getKeySize()
  • public void setKeySize(int size)
Se non si specifica una dimensione chiave, la dimensione chiave è impostata su 0.
Metodi di tipo chiave
Questi metodi impostano o restituiscono il tipo di chiave facoltativamente specificato per il metodo costruttore CCAAlgorithmParameterSpec :
  • public byte getHwType()
  • public void setHwType(byte hwTypeVal)
Il valore è una delle seguenti costanti:
  • CCAAlgorithmParameterSpec.CLEAR
  • CCAAlgorithmParameterSpec.SECURE_INTERNAL_TOKEN
  • CCAAlgorithmParameterSpec.CKDS
Metodi di etichetta di archiviazione
Questi metodi impostano o restituiscono l'etichetta di archiviazione della chiave CCA che è facoltativamente specificata per il metodo costruttore CCAAlgorithmParameterSpec . Se non si specifica un'etichetta CCA, questa etichetta viene impostata su null:
  • public String getLabel()
  • public void setLabel(String label)
Metodi della modalità di impacchettamento
Questi metodi impostano o restituiscono la modalità di wrapping del token CCA che è facoltativamente specificata per il metodo del costruttore CCAAlgorithmParameterSpec . Se non si specifica una modalità di impacchettamento, questa modalità è impostata su DEFAULT:
  • public byte getTokenWrappingMode()
  • public void setTokenWrappingMode(byte wrappingMode)

Non è necessario specificare un oggetto CCAAlgorithmParameterSpec per creare una chiave utilizzando un oggetto AESKeyGenerator, DESKeyGeneratoro DESedeKeyGenerator . Se nessun oggetto CCAAlgorithmParameterSpec viene passato al metodo KeyGenerator init() prima che venga richiamato il metodo generateKey() , l'oggetto chiave restituito contiene il materiale della chiave chiara per la chiave richiesta.

La classe KeyParameterSpec per hardware DSA (DSAHWKeyParameterSpec)

Questa classe (che implementa l'interfaccia di AlgorithmParameterSpec ) specifica la serie di parametri da utilizzare con l'algoritmo hardware DSA:

  • DSAKeyHWAttributes

    A causa delle limitazioni hardware, devono essere KeyHWAttributeValues.PKDS e KeyHWAttributeValues.SIGNATURE.

  • DSAParameterSpec
    Questi sono i seguenti:
    • p: il primo
    • q: il subprime
    • g: la base
  • KeySize

    Questo parametro indica la dimensione della chiave in base al numero primo p.

  • KeyLabel

    Questo parametro specifica il nome utilizzato come riferimento alla chiave memorizzata nell'hardware.

Consultare la documentazione API Java™ per i metodi specifici, i valori predefiniti e le limitazioni associati a questa classe.

La classe KeyParameterSpec per hardware RSA (RSAKeyParameterSpec)

Questa classe (che implementa l'interfaccia di AlgorithmParameterSpec ) specifica la serie di parametri da utilizzare con l'algoritmo hardware RSA:

  • RSAKeyHWAttributes

    Questo parametro include i seguenti elementi:

    • RSAKeyHWAttributes.type
      Questo elemento deve avere uno dei seguenti valori:
      • KeyHWAttributeValues.PKDS
      • KeyHWAttributeValues.CLEAR
      • KeyHWAttributeValues.RETAIN
    • RSAKeyHWAttributes.usage
      Questo elemento deve avere uno dei seguenti valori:
      • KeyHWAttributeValues.SIGNATURE
      • KeyHWAttributeValues.KEYMANAGEMENT
  • KeySize

    Questo parametro specifica la dimensione della chiave.

  • KeyLabel

    Se RSAKeyHWAttributes.type non è specificato come KeyHWAttributeValues.CLEAR, questo parametro specifica il nome utilizzato come riferimento alla chiave memorizzata nell'area di archiviazione chiavi CCA.

Consultare la documentazione API Java per i metodi specifici, i valori predefiniti e le limitazioni associati a questa classe.

La classe KeyParameterSpec per hardware EC (ECHWKeyParameterSpec)

Questa classe (che implementa l'interfaccia di AlgorithmParameterSpec ) specifica la serie di parametri da utilizzare con l'algoritmo hardware EC:

  • ECHWKeyAttributes

    Questo parametro include i seguenti elementi:

    • ECHWKeyAttributes.type

      Questo elemento deve avere uno dei seguenti valori:

      • KeyHWAttributeValues.PKDS
      • KeyHWAttributeValues.CLEAR
    • ECHWKeyAttributes.usage

      Questo elemento deve avere uno dei seguenti valori:

      • KeyHWAttributeValues.SIGNATURE
      • KeyHWAttributeValues.KEYMANAGEMENT
  • ECParameterSpec
    Questo elemento è composto dai seguenti elementi:
    • curve: la curva ellittica
    • g: il generatore, noto anche come punto base
    • n: l'ordine del generatore g
    • h: il cofattore
  • StandardName

    Questo parametro specifica il nome standard dei parametri del dominio della curva ellittica.

  • KeySize

    Questo parametro specifica la dimensione della chiave.

  • KeyLabel

    Se ECHWKeyAttributes.type non è specificato come KeyHWAttributeValues.CLEAR, questo parametro specifica il nome utilizzato come riferimento alla chiave memorizzata nell'area di archiviazione chiavi CCA.

Consultare la documentazione API Java per i metodi, i valori predefiniti e le limitazioni specifici associati a questa classe.