Class AbstractKeyPairResourceParser
- java.lang.Object
-
- org.apache.sshd.common.util.logging.AbstractLoggingBean
-
- org.apache.sshd.common.config.keys.loader.AbstractKeyPairResourceParser
-
- All Implemented Interfaces:
KeyPairResourceLoader
,KeyPairResourceParser
- Direct Known Subclasses:
AbstractPEMResourceKeyPairParser
,BouncyCastleKeyPairResourceParser
,OpenSSHKeyPairResourceParser
public abstract class AbstractKeyPairResourceParser extends AbstractLoggingBean implements KeyPairResourceParser
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.lang.String>
beginners
private java.util.List<java.lang.String>
enders
private java.util.List<java.util.List<java.lang.String>>
endingMarkers
-
Fields inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
log
-
Fields inherited from interface org.apache.sshd.common.config.keys.loader.KeyPairResourceLoader
MAX_CIPHER_NAME_LENGTH, MAX_KEY_COMMENT_LENGTH, MAX_KEY_TYPE_NAME_LENGTH, MAX_PRIVATE_KEY_DATA_SIZE, MAX_PUBLIC_KEY_DATA_SIZE
-
Fields inherited from interface org.apache.sshd.common.config.keys.loader.KeyPairResourceParser
EMPTY
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractKeyPairResourceParser(java.util.List<java.lang.String> beginners, java.util.List<java.lang.String> enders)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description boolean
canExtractKeyPairs(NamedResource resourceKey, java.util.List<java.lang.String> lines)
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)
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)
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)
Extracts the key pairs within a single delimited by markers block of lines.java.util.List<java.lang.String>
getBeginners()
java.util.List<java.lang.String>
getEnders()
java.util.List<java.util.List<java.lang.String>>
getEndingMarkers()
java.util.Collection<java.security.KeyPair>
loadKeyPairs(SessionContext session, NamedResource resourceKey, FilePasswordProvider passwordProvider, java.util.List<java.lang.String> lines)
Loads key pairs from the given resource text linesprotected 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)
-
Methods inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
debug, debug, debug, debug, debug, error, error, error, error, error, getSimplifiedLogger, info, info, warn, warn, warn, warn, warn, warn, warn, warn
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.sshd.common.config.keys.loader.KeyPairResourceLoader
loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs
-
-
-
-
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 blockenders
- 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 interfaceKeyPairResourceParser
- Parameters:
resourceKey
- A hint as to the origin of the text lineslines
- 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 linesjava.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 interfaceKeyPairResourceLoader
- Parameters:
session
- TheSessionContext
for invoking this load command - may benull
if not invoked within a session context (e.g., offline tool or session unknown).resourceKey
- A hint as to the origin of the text linespasswordProvider
- TheFilePasswordProvider
to use in case the data is encrypted - may benull
if no encrypted data is expectedlines
- TheList
of lines as read from the resource- Returns:
- The extracted
KeyPair
s - may benull
/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 linesjava.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
- TheSessionContext
for invoking this load command - may benull
if not invoked within a session context (e.g., offline tool or session unknown).resourceKey
- A hint as to the origin of the text linesbeginMarker
- The line containing the begin markerendMarker
- The line containing the end markerpasswordProvider
- TheFilePasswordProvider
to use in case the data is encrypted - may benull
if no encryptedlines
- The block of lines between the markersheaders
- Any headers that may have been available when data was read- Returns:
- The extracted
KeyPair
s - may benull
/empty if none. - Throws:
java.io.IOException
- If failed to parse the datajava.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
- TheSessionContext
for invoking this load command - may benull
if not invoked within a session context (e.g., offline tool or session unknown).resourceKey
- A hint as to the origin of the text linesbeginMarker
- The line containing the begin markerendMarker
- The line containing the end markerpasswordProvider
- TheFilePasswordProvider
to use in case the data is encrypted - may benull
if no encryptedbytes
- The decoded bytes from the lines containing the dataheaders
- Any headers that may have been available when data was read- Returns:
- The extracted
KeyPair
s - may benull
/empty if none. - Throws:
java.io.IOException
- If failed to parse the datajava.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
- TheSessionContext
for invoking this load command - may benull
if not invoked within a session context (e.g., offline tool or session unknown).resourceKey
- A hint as to the origin of the text linesbeginMarker
- The line containing the begin markerendMarker
- The line containing the end markerpasswordProvider
- TheFilePasswordProvider
to use in case the data is encrypted - may benull
if no encryptedstream
- The decoded dataInputStream
headers
- Any headers that may have been available when data was read- Returns:
- The extracted
KeyPair
s - may benull
/empty if none. - Throws:
java.io.IOException
- If failed to parse the datajava.security.GeneralSecurityException
- If failed to generate the keys
-
-