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
FieldsModifier and TypeFieldDescriptionFields inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
logFields 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_SIZEFields inherited from interface org.apache.sshd.common.config.keys.loader.KeyPairResourceParser
EMPTY -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractKeyPairResourceParser(List<String> beginners, List<String> enders) -
Method Summary
Modifier and TypeMethodDescriptionbooleancanExtractKeyPairs(NamedResource resourceKey, List<String> lines) extractKeyPairs(SessionContext session, NamedResource resourceKey, String beginMarker, String endMarker, FilePasswordProvider passwordProvider, byte[] bytes, Map<String, String> headers) abstract Collection<KeyPair> extractKeyPairs(SessionContext session, NamedResource resourceKey, String beginMarker, String endMarker, FilePasswordProvider passwordProvider, InputStream stream, Map<String, String> headers) extractKeyPairs(SessionContext session, NamedResource resourceKey, String beginMarker, String endMarker, FilePasswordProvider passwordProvider, List<String> lines, Map<String, String> headers) Extracts the key pairs within a single delimited by markers block of lines.loadKeyPairs(SessionContext session, NamedResource resourceKey, FilePasswordProvider passwordProvider, List<String> lines) Loads key pairs from the given resource text linesseparateDataLinesFromHeaders(SessionContext session, NamedResource resourceKey, String startLine, String endLine, List<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, warnMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.sshd.common.config.keys.loader.KeyPairResourceLoader
loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs, loadKeyPairs
-
Field Details
-
beginners
-
enders
-
endingMarkers
-
-
Constructor Details
-
AbstractKeyPairResourceParser
- 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 Details
-
getBeginners
-
getEnders
-
getEndingMarkers
- Returns:
- A
Listof 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, List<String> lines) throws IOException, GeneralSecurityException - Specified by:
canExtractKeyPairsin interfaceKeyPairResourceParser- Parameters:
resourceKey- A hint as to the origin of the text lineslines- The resource lines- Returns:
trueif the parser can extract some key pairs from the lines- Throws:
IOException- If failed to process the linesGeneralSecurityException- If failed to extract information regarding the possibility to extract the key pairs
-
loadKeyPairs
public Collection<KeyPair> loadKeyPairs(SessionContext session, NamedResource resourceKey, FilePasswordProvider passwordProvider, List<String> lines) throws IOException, GeneralSecurityException Description copied from interface:KeyPairResourceLoaderLoads key pairs from the given resource text lines- Specified by:
loadKeyPairsin interfaceKeyPairResourceLoader- Parameters:
session- TheSessionContextfor invoking this load command - may benullif not invoked within a session context (e.g., offline tool or session unknown).resourceKey- A hint as to the origin of the text linespasswordProvider- TheFilePasswordProviderto use in case the data is encrypted - may benullif no encrypted data is expectedlines- TheListof lines as read from the resource- Returns:
- The extracted
KeyPairs - 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:
IOException- If failed to process the linesGeneralSecurityException- If failed to generate the keys from the parsed data
-
separateDataLinesFromHeaders
protected Map.Entry<Map<String,String>, separateDataLinesFromHeadersList<String>> (SessionContext session, NamedResource resourceKey, String startLine, String endLine, List<String> dataLines) throws IOException, GeneralSecurityException - Throws:
IOExceptionGeneralSecurityException
-
extractKeyPairs
public Collection<KeyPair> extractKeyPairs(SessionContext session, NamedResource resourceKey, String beginMarker, String endMarker, FilePasswordProvider passwordProvider, List<String> lines, Map<String, String> headers) throws IOException, GeneralSecurityExceptionExtracts 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- TheSessionContextfor invoking this load command - may benullif 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- TheFilePasswordProviderto use in case the data is encrypted - may benullif no encryptedlines- The block of lines between the markersheaders- Any headers that may have been available when data was read- Returns:
- The extracted
KeyPairs - may benull/empty if none. - Throws:
IOException- If failed to parse the dataGeneralSecurityException- If failed to generate the keys
-
extractKeyPairs
public Collection<KeyPair> extractKeyPairs(SessionContext session, NamedResource resourceKey, String beginMarker, String endMarker, FilePasswordProvider passwordProvider, byte[] bytes, Map<String, String> headers) throws IOException, GeneralSecurityException- Parameters:
session- TheSessionContextfor invoking this load command - may benullif 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- TheFilePasswordProviderto use in case the data is encrypted - may benullif 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
KeyPairs - may benull/empty if none. - Throws:
IOException- If failed to parse the dataGeneralSecurityException- If failed to generate the keys
-
extractKeyPairs
public abstract Collection<KeyPair> extractKeyPairs(SessionContext session, NamedResource resourceKey, String beginMarker, String endMarker, FilePasswordProvider passwordProvider, InputStream stream, Map<String, String> headers) throws IOException, GeneralSecurityException- Parameters:
session- TheSessionContextfor invoking this load command - may benullif 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- TheFilePasswordProviderto use in case the data is encrypted - may benullif no encryptedstream- The decoded dataInputStreamheaders- Any headers that may have been available when data was read- Returns:
- The extracted
KeyPairs - may benull/empty if none. - Throws:
IOException- If failed to parse the dataGeneralSecurityException- If failed to generate the keys
-