Class ECDSAPEMResourceKeyPairParser
- java.lang.Object
-
- org.apache.sshd.common.util.logging.AbstractLoggingBean
-
- org.apache.sshd.common.config.keys.loader.AbstractKeyPairResourceParser
-
- org.apache.sshd.common.config.keys.loader.pem.AbstractPEMResourceKeyPairParser
-
- org.apache.sshd.common.config.keys.loader.pem.ECDSAPEMResourceKeyPairParser
-
- All Implemented Interfaces:
AlgorithmNameProvider
,KeyPairResourceLoader
,KeyPairResourceParser
,KeyPairPEMResourceParser
public class ECDSAPEMResourceKeyPairParser extends AbstractPEMResourceKeyPairParser
- Author:
- Apache MINA SSHD Project
-
-
Field Summary
Fields Modifier and Type Field Description static String
BEGIN_MARKER
static List<String>
BEGINNERS
static String
ECDSA_OID
static String
END_MARKER
static List<String>
ENDERS
static ECDSAPEMResourceKeyPairParser
INSTANCE
-
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 Constructor Description ECDSAPEMResourceKeyPairParser()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static AbstractMap.SimpleImmutableEntry<ECPublicKeySpec,ECPrivateKeySpec>
decodeECPrivateKeySpec(InputStream inputStream, boolean okToClose)
ASN.1 syntax according to rfc5915 is:static ECPrivateKeySpec
decodeECPrivateKeySpec(DERParser parser)
static ECPoint
decodeECPublicKeyValue(ECCurves curve, DERParser parser)
ASN.1 syntax according to rfc5915 is:Collection<KeyPair>
extractKeyPairs(SessionContext session, NamedResource resourceKey, String beginMarker, String endMarker, FilePasswordProvider passwordProvider, InputStream stream, Map<String,String> headers)
-
Methods inherited from class org.apache.sshd.common.config.keys.loader.pem.AbstractPEMResourceKeyPairParser
applyPrivateKeyCipher, extractKeyPairs, getAlgorithm, getAlgorithmIdentifier
-
Methods inherited from class org.apache.sshd.common.config.keys.loader.AbstractKeyPairResourceParser
canExtractKeyPairs, extractKeyPairs, getBeginners, getEnders, getEndingMarkers, loadKeyPairs, separateDataLinesFromHeaders
-
Methods inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
getSimplifiedLogger
-
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, loadKeyPairs
-
Methods inherited from interface org.apache.sshd.common.config.keys.loader.KeyPairResourceParser
canExtractKeyPairs
-
-
-
-
Field Detail
-
BEGIN_MARKER
public static final String BEGIN_MARKER
- See Also:
- Constant Field Values
-
END_MARKER
public static final String END_MARKER
- See Also:
- Constant Field Values
-
ECDSA_OID
public static final String ECDSA_OID
- See Also:
- RFC-3279 section 2.3.5, Constant Field Values
-
INSTANCE
public static final ECDSAPEMResourceKeyPairParser INSTANCE
-
-
Method Detail
-
extractKeyPairs
public Collection<KeyPair> extractKeyPairs(SessionContext session, NamedResource resourceKey, String beginMarker, String endMarker, FilePasswordProvider passwordProvider, InputStream stream, Map<String,String> headers) throws IOException, GeneralSecurityException
- Specified by:
extractKeyPairs
in classAbstractKeyPairResourceParser
- 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:
IOException
- If failed to parse the dataGeneralSecurityException
- If failed to generate the keys
-
decodeECPrivateKeySpec
public static AbstractMap.SimpleImmutableEntry<ECPublicKeySpec,ECPrivateKeySpec> decodeECPrivateKeySpec(InputStream inputStream, boolean okToClose) throws IOException
ASN.1 syntax according to rfc5915 is:
ECPrivateKey ::= SEQUENCE { version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1), privateKey OCTET STRING, parameters [0] ECParameters {{ NamedCurve }} OPTIONAL, publicKey [1] BIT STRING OPTIONAL }
ECParameters syntax according to RFC5480:
ECParameters ::= CHOICE { namedCurve OBJECT IDENTIFIER -- implicitCurve NULL -- specifiedCurve SpecifiedECDomain }
- Parameters:
inputStream
- TheInputStream
containing the DER encoded dataokToClose
-true
if OK to close the DER stream once parsing complete- Returns:
- The decoded
AbstractMap.SimpleImmutableEntry
ofECPublicKeySpec
andECPrivateKeySpec
- Throws:
IOException
- If failed to to decode the DER stream
-
decodeECPrivateKeySpec
public static final ECPrivateKeySpec decodeECPrivateKeySpec(DERParser parser) throws IOException
- Throws:
IOException
-
decodeECPublicKeyValue
public static final ECPoint decodeECPublicKeyValue(ECCurves curve, DERParser parser) throws IOException
ASN.1 syntax according to rfc5915 is:
publicKey [1] BIT STRING OPTIONAL
- Parameters:
curve
- TheECCurves
curveparser
- TheDERParser
assumed to be positioned at the start of the data- Returns:
- The encoded
ECPoint
- Throws:
IOException
- If failed to create the point
-
-