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 Detail

      • LOG

        private static final org.slf4j.Logger LOG
      • x509Datas

        private java.util.List<X509Data> x509Datas
      • encryptedKeys

        private java.util.List<EncryptedKey> encryptedKeys
      • storageResolvers

        private java.util.List<StorageResolver> storageResolvers
        Field storageResolvers
      • secureValidation

        private boolean secureValidation
    • Constructor Detail

      • KeyInfo

        public KeyInfo​(org.w3c.dom.Document doc)
        Constructor KeyInfo
        Parameters:
        doc -
    • Method Detail

      • setSecureValidation

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

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

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

        public void addKeyName​(java.lang.String keynameString)
        Method addKeyName
        Parameters:
        keynameString -
      • add

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

        public void addKeyValue​(java.security.PublicKey pk)
        Method addKeyValue
        Parameters:
        pk -
      • addKeyValue

        public void addKeyValue​(org.w3c.dom.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​(java.security.PublicKey pk)
        Method add
        Parameters:
        pk -
      • add

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

        public void addMgmtData​(java.lang.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​(java.lang.String uri,
                                       Transforms transforms,
                                       java.lang.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​(DEREncodedKeyValue derEncodedKeyValue)
        Method add
        Parameters:
        derEncodedKeyValue -
      • add

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

        public void addUnknownElement​(org.w3c.dom.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
      • itemUnknownElement

        public org.w3c.dom.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 java.security.PublicKey getPublicKey()
                                             throws KeyResolverException
        This method returns the public key.
        Returns:
        If the KeyInfo contains a PublicKey node
        Throws:
        KeyResolverException
      • getPublicKeyFromStaticResolvers

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

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

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

        java.security.cert.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
      • getX509CertificateFromInternalResolvers

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

        public javax.crypto.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

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

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

        public java.security.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

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

        java.security.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 java.lang.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.