Class AbstractKeyPairResourceParser

    • Field Detail

      • beginners

        private final java.util.List<java.lang.String> beginners
      • enders

        private final java.util.List<java.lang.String> enders
      • endingMarkers

        private final java.util.List<java.util.List<java.lang.String>> endingMarkers
    • Constructor Detail

      • AbstractKeyPairResourceParser

        protected AbstractKeyPairResourceParser​(java.util.List<java.lang.String> beginners,
                                                java.util.List<java.lang.String> enders)
        Parameters:
        beginners - The markers that indicate the beginning of a parsing block
        enders - The matching (by position) markers that indicate the end of a parsing block
    • Method Detail

      • getBeginners

        public java.util.List<java.lang.String> getBeginners()
      • getEnders

        public java.util.List<java.lang.String> getEnders()
      • getEndingMarkers

        public java.util.List<java.util.List<java.lang.String>> getEndingMarkers()
        Returns:
        A List of same size as the ending markers, where each ending marker is encapsulated inside a singleton list and resides as the same index as the marker it encapsulates
      • canExtractKeyPairs

        public boolean canExtractKeyPairs​(NamedResource resourceKey,
                                          java.util.List<java.lang.String> lines)
                                   throws java.io.IOException,
                                          java.security.GeneralSecurityException
        Specified by:
        canExtractKeyPairs in interface KeyPairResourceParser
        Parameters:
        resourceKey - A hint as to the origin of the text lines
        lines - The resource lines
        Returns:
        true if the parser can extract some key pairs from the lines
        Throws:
        java.io.IOException - If failed to process the lines
        java.security.GeneralSecurityException - If failed to extract information regarding the possibility to extract the key pairs
      • loadKeyPairs

        public java.util.Collection<java.security.KeyPair> loadKeyPairs​(SessionContext session,
                                                                        NamedResource resourceKey,
                                                                        FilePasswordProvider passwordProvider,
                                                                        java.util.List<java.lang.String> lines)
                                                                 throws java.io.IOException,
                                                                        java.security.GeneralSecurityException
        Description copied from interface: KeyPairResourceLoader
        Loads key pairs from the given resource text lines
        Specified by:
        loadKeyPairs in interface KeyPairResourceLoader
        Parameters:
        session - The SessionContext for invoking this load command - may be null if not invoked within a session context (e.g., offline tool or session unknown).
        resourceKey - A hint as to the origin of the text lines
        passwordProvider - The FilePasswordProvider to use in case the data is encrypted - may be null if no encrypted data is expected
        lines - The List of lines as read from the resource
        Returns:
        The extracted KeyPairs - may be null/empty if none. Note: the resource loader may decide to skip unknown lines if more than one key pair type is encoded in it
        Throws:
        java.io.IOException - If failed to process the lines
        java.security.GeneralSecurityException - If failed to generate the keys from the parsed data
      • separateDataLinesFromHeaders

        protected java.util.Map.Entry<java.util.Map<java.lang.String,​java.lang.String>,​java.util.List<java.lang.String>> separateDataLinesFromHeaders​(SessionContext session,
                                                                                                                                                                  NamedResource resourceKey,
                                                                                                                                                                  java.lang.String startLine,
                                                                                                                                                                  java.lang.String endLine,
                                                                                                                                                                  java.util.List<java.lang.String> dataLines)
                                                                                                                                                           throws java.io.IOException,
                                                                                                                                                                  java.security.GeneralSecurityException
        Throws:
        java.io.IOException
        java.security.GeneralSecurityException
      • extractKeyPairs

        public java.util.Collection<java.security.KeyPair> extractKeyPairs​(SessionContext session,
                                                                           NamedResource resourceKey,
                                                                           java.lang.String beginMarker,
                                                                           java.lang.String endMarker,
                                                                           FilePasswordProvider passwordProvider,
                                                                           java.util.List<java.lang.String> lines,
                                                                           java.util.Map<java.lang.String,​java.lang.String> headers)
                                                                    throws java.io.IOException,
                                                                           java.security.GeneralSecurityException
        Extracts the key pairs within a single delimited by markers block of lines. By default cleans up the empty lines, joins them and converts them from BASE64
        Parameters:
        session - The SessionContext for invoking this load command - may be null if not invoked within a session context (e.g., offline tool or session unknown).
        resourceKey - A hint as to the origin of the text lines
        beginMarker - The line containing the begin marker
        endMarker - The line containing the end marker
        passwordProvider - The FilePasswordProvider to use in case the data is encrypted - may be null if no encrypted
        lines - The block of lines between the markers
        headers - Any headers that may have been available when data was read
        Returns:
        The extracted KeyPairs - may be null/empty if none.
        Throws:
        java.io.IOException - If failed to parse the data
        java.security.GeneralSecurityException - If failed to generate the keys
      • extractKeyPairs

        public java.util.Collection<java.security.KeyPair> extractKeyPairs​(SessionContext session,
                                                                           NamedResource resourceKey,
                                                                           java.lang.String beginMarker,
                                                                           java.lang.String endMarker,
                                                                           FilePasswordProvider passwordProvider,
                                                                           byte[] bytes,
                                                                           java.util.Map<java.lang.String,​java.lang.String> headers)
                                                                    throws java.io.IOException,
                                                                           java.security.GeneralSecurityException
        Parameters:
        session - The SessionContext for invoking this load command - may be null if not invoked within a session context (e.g., offline tool or session unknown).
        resourceKey - A hint as to the origin of the text lines
        beginMarker - The line containing the begin marker
        endMarker - The line containing the end marker
        passwordProvider - The FilePasswordProvider to use in case the data is encrypted - may be null if no encrypted
        bytes - The decoded bytes from the lines containing the data
        headers - Any headers that may have been available when data was read
        Returns:
        The extracted KeyPairs - may be null/empty if none.
        Throws:
        java.io.IOException - If failed to parse the data
        java.security.GeneralSecurityException - If failed to generate the keys
      • extractKeyPairs

        public abstract java.util.Collection<java.security.KeyPair> extractKeyPairs​(SessionContext session,
                                                                                    NamedResource resourceKey,
                                                                                    java.lang.String beginMarker,
                                                                                    java.lang.String endMarker,
                                                                                    FilePasswordProvider passwordProvider,
                                                                                    java.io.InputStream stream,
                                                                                    java.util.Map<java.lang.String,​java.lang.String> headers)
                                                                             throws java.io.IOException,
                                                                                    java.security.GeneralSecurityException
        Parameters:
        session - The SessionContext for invoking this load command - may be null if not invoked within a session context (e.g., offline tool or session unknown).
        resourceKey - A hint as to the origin of the text lines
        beginMarker - The line containing the begin marker
        endMarker - The line containing the end marker
        passwordProvider - The FilePasswordProvider to use in case the data is encrypted - may be null if no encrypted
        stream - The decoded data InputStream
        headers - Any headers that may have been available when data was read
        Returns:
        The extracted KeyPairs - may be null/empty if none.
        Throws:
        java.io.IOException - If failed to parse the data
        java.security.GeneralSecurityException - If failed to generate the keys