Class KeyInfo


public class KeyInfo extends SignatureElementProxy
This class stand for KeyInfo Element that may contain keys, names, certificates and other public key management information, such as in-band key distribution or key agreement data.

KeyInfo Element has two basic functions: One is KeyResolve for getting the public key in signature validation processing. the other one is toElement for getting the element in signature generation processing.

The lengthXXX() methods provide access to the internal Key objects:
  • If the KeyInfo was constructed from an Element (Signature verification), the lengthXXX() methods searches for child elements of ds:KeyInfo for known types.
  • If the KeyInfo was constructed from scratch (during Signature generation), the lengthXXX() methods return the number of XXXs objects already passed to the KeyInfo

The addXXX() methods are used for adding Objects of the appropriate type to the KeyInfo. This is used during signature generation.

The itemXXX(int i) methods return the i'th object of the corresponding type.

The containsXXX() methods return whether the KeyInfo contains the corresponding type.
  • Field Details

  • Constructor Details

  • Method Details

    • setSecureValidation

      public void setSecureValidation(boolean secureValidation)
      Set whether secure processing is enabled or not. The default is false.
    • setId

      public void setId(String id)
      Sets the Id attribute
      Parameters:
      id - ID
    • getId

      public String getId()
      Returns the Id attribute
      Returns:
      the Id attribute
    • addKeyName

      public void addKeyName(String keynameString)
      Method addKeyName
      Parameters:
      keynameString -
    • add

      public void add(KeyName keyname)
      Method add
      Parameters:
      keyname -
    • addKeyValue

      public void addKeyValue(PublicKey pk)
      Method addKeyValue
      Parameters:
      pk -
    • addKeyValue

      public void addKeyValue(Element unknownKeyValueElement)
      Method addKeyValue
      Parameters:
      unknownKeyValueElement -
    • add

      public void add(DSAKeyValue dsakeyvalue)
      Method add
      Parameters:
      dsakeyvalue -
    • add

      public void add(RSAKeyValue rsakeyvalue)
      Method add
      Parameters:
      rsakeyvalue -
    • add

      public void add(PublicKey pk)
      Method add
      Parameters:
      pk -
    • add

      public void add(KeyValue keyvalue)
      Method add
      Parameters:
      keyvalue -
    • addMgmtData

      public void addMgmtData(String mgmtdata)
      Method addMgmtData
      Parameters:
      mgmtdata -
    • add

      public void add(MgmtData mgmtdata)
      Method add
      Parameters:
      mgmtdata -
    • add

      public void add(PGPData pgpdata)
      Method addPGPData
      Parameters:
      pgpdata -
    • addRetrievalMethod

      public void addRetrievalMethod(String uri, Transforms transforms, String Type)
      Method addRetrievalMethod
      Parameters:
      uri -
      transforms -
      Type -
    • add

      public void add(RetrievalMethod retrievalmethod)
      Method add
      Parameters:
      retrievalmethod -
    • add

      public void add(SPKIData spkidata)
      Method add
      Parameters:
      spkidata -
    • add

      public void add(X509Data x509data)
      Method addX509Data
      Parameters:
      x509data -
    • add

      public void add(EncryptedKey encryptedKey) throws XMLEncryptionException
      Method addEncryptedKey
      Parameters:
      encryptedKey -
      Throws:
      XMLEncryptionException
    • addDEREncodedKeyValue

      public void addDEREncodedKeyValue(PublicKey pk) throws XMLSecurityException
      Method addDEREncodedKeyValue
      Parameters:
      pk -
      Throws:
      XMLSecurityException
    • add

      public void add(DEREncodedKeyValue derEncodedKeyValue)
      Method add
      Parameters:
      derEncodedKeyValue -
    • addKeyInfoReference

      public void addKeyInfoReference(String URI) throws XMLSecurityException
      Method addKeyInfoReference
      Parameters:
      URI -
      Throws:
      XMLSecurityException
    • add

      public void add(KeyInfoReference keyInfoReference)
      Method add
      Parameters:
      keyInfoReference -
    • addUnknownElement

      public void addUnknownElement(Element element)
      Method addUnknownElement
      Parameters:
      element -
    • lengthKeyName

      public int lengthKeyName()
      Method lengthKeyName
      Returns:
      the number of the KeyName tags
    • lengthKeyValue

      public int lengthKeyValue()
      Method lengthKeyValue
      Returns:
      the number of the KeyValue tags
    • lengthMgmtData

      public int lengthMgmtData()
      Method lengthMgmtData
      Returns:
      the number of the MgmtData tags
    • lengthPGPData

      public int lengthPGPData()
      Method lengthPGPData
      Returns:
      the number of the PGPDat. tags
    • lengthRetrievalMethod

      public int lengthRetrievalMethod()
      Method lengthRetrievalMethod
      Returns:
      the number of the RetrievalMethod tags
    • lengthSPKIData

      public int lengthSPKIData()
      Method lengthSPKIData
      Returns:
      the number of the SPKIData tags
    • lengthX509Data

      public int lengthX509Data()
      Method lengthX509Data
      Returns:
      the number of the X509Data tags
    • lengthDEREncodedKeyValue

      public int lengthDEREncodedKeyValue()
      Method lengthDEREncodedKeyValue
      Returns:
      the number of the DEREncodedKeyValue tags
    • lengthKeyInfoReference

      public int lengthKeyInfoReference()
      Method lengthKeyInfoReference
      Returns:
      the number of the KeyInfoReference tags
    • lengthUnknownElement

      public int lengthUnknownElement()
      Method lengthUnknownElement NOTE possibly buggy.
      Returns:
      the number of the UnknownElement tags
    • itemKeyName

      public KeyName itemKeyName(int i) throws XMLSecurityException
      Method itemKeyName
      Parameters:
      i -
      Returns:
      the asked KeyName element, null if the index is too big
      Throws:
      XMLSecurityException
    • itemKeyValue

      public KeyValue itemKeyValue(int i) throws XMLSecurityException
      Method itemKeyValue
      Parameters:
      i -
      Returns:
      the asked KeyValue element, null if the index is too big
      Throws:
      XMLSecurityException
    • itemMgmtData

      public MgmtData itemMgmtData(int i) throws XMLSecurityException
      Method itemMgmtData
      Parameters:
      i -
      Returns:
      the asked MgmtData element, null if the index is too big
      Throws:
      XMLSecurityException
    • itemPGPData

      public PGPData itemPGPData(int i) throws XMLSecurityException
      Method itemPGPData
      Parameters:
      i -
      Returns:
      the asked PGPData element, null if the index is too big
      Throws:
      XMLSecurityException
    • itemRetrievalMethod

      public RetrievalMethod itemRetrievalMethod(int i) throws XMLSecurityException
      Method itemRetrievalMethod
      Parameters:
      i -
      Returns:
      the asked RetrievalMethod element, null if the index is too big
      Throws:
      XMLSecurityException
    • itemSPKIData

      public SPKIData itemSPKIData(int i) throws XMLSecurityException
      Method itemSPKIData
      Parameters:
      i -
      Returns:
      the asked SPKIData element, null if the index is too big
      Throws:
      XMLSecurityException
    • itemX509Data

      public X509Data itemX509Data(int i) throws XMLSecurityException
      Method itemX509Data
      Parameters:
      i -
      Returns:
      the asked X509Data element, null if the index is too big
      Throws:
      XMLSecurityException
    • itemEncryptedKey

      public EncryptedKey itemEncryptedKey(int i) throws XMLSecurityException
      Method itemEncryptedKey
      Parameters:
      i -
      Returns:
      the asked EncryptedKey element, null if the index is too big
      Throws:
      XMLSecurityException
    • itemDEREncodedKeyValue

      public DEREncodedKeyValue itemDEREncodedKeyValue(int i) throws XMLSecurityException
      Method itemDEREncodedKeyValue
      Parameters:
      i -
      Returns:
      the asked DEREncodedKeyValue element, null if the index is too big
      Throws:
      XMLSecurityException
    • itemKeyInfoReference

      public KeyInfoReference itemKeyInfoReference(int i) throws XMLSecurityException
      Method itemKeyInfoReference
      Parameters:
      i -
      Returns:
      the asked KeyInfoReference element, null if the index is too big
      Throws:
      XMLSecurityException
    • itemUnknownElement

      public Element itemUnknownElement(int i)
      Method itemUnknownElement
      Parameters:
      i - index
      Returns:
      the element number of the unknown elements
    • isEmpty

      public boolean isEmpty()
      Method isEmpty
      Returns:
      true if the element has no descendants.
    • containsKeyName

      public boolean containsKeyName()
      Method containsKeyName
      Returns:
      If the KeyInfo contains a KeyName node
    • containsKeyValue

      public boolean containsKeyValue()
      Method containsKeyValue
      Returns:
      If the KeyInfo contains a KeyValue node
    • containsMgmtData

      public boolean containsMgmtData()
      Method containsMgmtData
      Returns:
      If the KeyInfo contains a MgmtData node
    • containsPGPData

      public boolean containsPGPData()
      Method containsPGPData
      Returns:
      If the KeyInfo contains a PGPData node
    • containsRetrievalMethod

      public boolean containsRetrievalMethod()
      Method containsRetrievalMethod
      Returns:
      If the KeyInfo contains a RetrievalMethod node
    • containsSPKIData

      public boolean containsSPKIData()
      Method containsSPKIData
      Returns:
      If the KeyInfo contains a SPKIData node
    • containsUnknownElement

      public boolean containsUnknownElement()
      Method containsUnknownElement
      Returns:
      If the KeyInfo contains a UnknownElement node
    • containsX509Data

      public boolean containsX509Data()
      Method containsX509Data
      Returns:
      If the KeyInfo contains a X509Data node
    • containsDEREncodedKeyValue

      public boolean containsDEREncodedKeyValue()
      Method containsDEREncodedKeyValue
      Returns:
      If the KeyInfo contains a DEREncodedKeyValue node
    • containsKeyInfoReference

      public boolean containsKeyInfoReference()
      Method containsKeyInfoReference
      Returns:
      If the KeyInfo contains a KeyInfoReference node
    • getPublicKey

      public PublicKey getPublicKey() throws KeyResolverException
      This method returns the public key.
      Returns:
      If the KeyInfo contains a PublicKey node
      Throws:
      KeyResolverException
    • getPublicKeyFromStaticResolvers

      PublicKey getPublicKeyFromStaticResolvers() throws KeyResolverException
      Searches the library wide KeyResolvers for public keys
      Returns:
      The public key contained in this Node.
      Throws:
      KeyResolverException
    • getPublicKeyFromInternalResolvers

      PublicKey getPublicKeyFromInternalResolvers() throws KeyResolverException
      Searches the per-KeyInfo KeyResolvers for public keys
      Returns:
      The public key contained in this Node.
      Throws:
      KeyResolverException
    • getX509Certificate

      public X509Certificate getX509Certificate() throws KeyResolverException
      Method getX509Certificate
      Returns:
      The certificate contained in this KeyInfo
      Throws:
      KeyResolverException
    • getX509CertificateFromStaticResolvers

      X509Certificate getX509CertificateFromStaticResolvers() throws KeyResolverException
      This method uses each System-wide KeyResolver to search the child elements. Each combination of KeyResolver and child element is checked against all StorageResolvers.
      Returns:
      The certificate contained in this KeyInfo
      Throws:
      KeyResolverException
    • applyCurrentResolver

      private X509Certificate applyCurrentResolver(String uri, KeyResolverSpi keyResolver) throws KeyResolverException
      Throws:
      KeyResolverException
    • getX509CertificateFromInternalResolvers

      X509Certificate getX509CertificateFromInternalResolvers() throws KeyResolverException
      Method getX509CertificateFromInternalResolvers
      Returns:
      The certificate contained in this KeyInfo
      Throws:
      KeyResolverException
    • getSecretKey

      public SecretKey getSecretKey() throws KeyResolverException
      This method returns a secret (symmetric) key. This is for XML Encryption.
      Returns:
      the secret key contained in this KeyInfo
      Throws:
      KeyResolverException
    • getSecretKeyFromStaticResolvers

      SecretKey getSecretKeyFromStaticResolvers() throws KeyResolverException
      Searches the library wide KeyResolvers for Secret keys
      Returns:
      the secret key contained in this KeyInfo
      Throws:
      KeyResolverException
    • getSecretKeyFromInternalResolvers

      SecretKey getSecretKeyFromInternalResolvers() throws KeyResolverException
      Searches the per-KeyInfo KeyResolvers for secret keys
      Returns:
      the secret key contained in this KeyInfo
      Throws:
      KeyResolverException
    • getPrivateKey

      public PrivateKey getPrivateKey() throws KeyResolverException
      This method returns a private key. This is for Key Transport in XML Encryption.
      Returns:
      the private key contained in this KeyInfo
      Throws:
      KeyResolverException
    • getPrivateKeyFromStaticResolvers

      PrivateKey getPrivateKeyFromStaticResolvers() throws KeyResolverException
      Searches the library wide KeyResolvers for Private keys
      Returns:
      the private key contained in this KeyInfo
      Throws:
      KeyResolverException
    • getPrivateKeyFromInternalResolvers

      PrivateKey getPrivateKeyFromInternalResolvers() throws KeyResolverException
      Searches the per-KeyInfo KeyResolvers for private keys
      Returns:
      the private key contained in this KeyInfo
      Throws:
      KeyResolverException
    • registerInternalKeyResolver

      public void registerInternalKeyResolver(KeyResolverSpi realKeyResolver)
      This method is used to add a custom KeyResolverSpi to a KeyInfo object.
      Parameters:
      realKeyResolver -
    • lengthInternalKeyResolver

      int lengthInternalKeyResolver()
      Method lengthInternalKeyResolver
      Returns:
      the length of the key
    • itemInternalKeyResolver

      KeyResolverSpi itemInternalKeyResolver(int i)
      Method itemInternalKeyResolver
      Parameters:
      i - the index
      Returns:
      the KeyResolverSpi for the index.
    • addStorageResolver

      public void addStorageResolver(StorageResolver storageResolver)
      Method addStorageResolver
      Parameters:
      storageResolver -
    • getBaseLocalName

      public String getBaseLocalName()
      Returns the localname of the Elements of the sub-class.
      Specified by:
      getBaseLocalName in class ElementProxy
      Returns:
      the localname of the Elements of the sub-class.