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
- See Also:
- RFC 5915
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
BEGIN_MARKER
static java.util.List<java.lang.String>
BEGINNERS
static java.lang.String
ECDSA_OID
static java.lang.String
END_MARKER
static java.util.List<java.lang.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 java.security.spec.ECPoint
decodeECPointData(ASN1Object pointData)
static java.util.Map.Entry<java.security.spec.ECPublicKeySpec,java.security.spec.ECPrivateKeySpec>
decodeECPrivateKeySpec(ECCurves curve, ASN1Object sequence)
ASN.1 syntax according to RFC 5915 is:static java.util.Map.Entry<java.security.spec.ECPrivateKeySpec,ASN1Object>
decodeECPrivateKeySpec(ECCurves curve, DERParser parser)
static java.security.spec.ECPoint
decodeECPublicKeyValue(ASN1Object dataObject)
static java.security.spec.ECPoint
decodeECPublicKeyValue(DERParser parser)
ASN.1 syntax according to rfc5915 is: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)
static java.util.Map.Entry<ECCurves,ASN1Object>
parseCurveParameter(ASN1Object paramsObject)
static java.util.Map.Entry<ECCurves,ASN1Object>
parseCurveParameter(DERParser parser)
static java.security.KeyPair
parseECKeyPair(java.io.InputStream inputStream, boolean okToClose)
static java.security.KeyPair
parseECKeyPair(ECCurves curve, DERParser parser)
-
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
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, loadKeyPairs
-
Methods inherited from interface org.apache.sshd.common.config.keys.loader.KeyPairResourceParser
canExtractKeyPairs
-
-
-
-
Field Detail
-
BEGIN_MARKER
public static final java.lang.String BEGIN_MARKER
- See Also:
- Constant Field Values
-
BEGINNERS
public static final java.util.List<java.lang.String> BEGINNERS
-
END_MARKER
public static final java.lang.String END_MARKER
- See Also:
- Constant Field Values
-
ENDERS
public static final java.util.List<java.lang.String> ENDERS
-
ECDSA_OID
public static final java.lang.String ECDSA_OID
- See Also:
- RFC-3279 section 2.3.5, Constant Field Values
-
INSTANCE
public static final ECDSAPEMResourceKeyPairParser INSTANCE
-
-
Method Detail
-
extractKeyPairs
public 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
- 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:
java.io.IOException
- If failed to parse the datajava.security.GeneralSecurityException
- If failed to generate the keys
-
parseECKeyPair
public static java.security.KeyPair parseECKeyPair(java.io.InputStream inputStream, boolean okToClose) throws java.io.IOException, java.security.GeneralSecurityException
- Throws:
java.io.IOException
java.security.GeneralSecurityException
-
parseECKeyPair
public static java.security.KeyPair parseECKeyPair(ECCurves curve, DERParser parser) throws java.io.IOException, java.security.GeneralSecurityException
- Parameters:
curve
- Thecurve
represented by this data (in case it was optional and somehow known externally) ifnull
then it is assumed to be part of the parsed data. then it is assumed to be part of the data.parser
- TheDERParser
for the data- Returns:
- The parsed
KeyPair
- Throws:
java.io.IOException
- If failed to parse the datajava.security.GeneralSecurityException
- If failed to generate the keys
-
decodeECPrivateKeySpec
public static java.util.Map.Entry<java.security.spec.ECPublicKeySpec,java.security.spec.ECPrivateKeySpec> decodeECPrivateKeySpec(ECCurves curve, ASN1Object sequence) throws java.io.IOException
ASN.1 syntax according to RFC 5915 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:
curve
- Thecurve
represented by this data (in case it was optional and somehow known externally) ifnull
then it is assumed to be part of the parsed data.sequence
- TheASN1Object
sequence containing the DER encoded data- Returns:
- The decoded
AbstractMap.SimpleImmutableEntry
ofECPublicKeySpec
andECPrivateKeySpec
- Throws:
java.io.IOException
- If failed to to decode the DER stream
-
decodeECPrivateKeySpec
public static java.util.Map.Entry<java.security.spec.ECPrivateKeySpec,ASN1Object> decodeECPrivateKeySpec(ECCurves curve, DERParser parser) throws java.io.IOException
- Throws:
java.io.IOException
-
parseCurveParameter
public static java.util.Map.Entry<ECCurves,ASN1Object> parseCurveParameter(DERParser parser) throws java.io.IOException
- Throws:
java.io.IOException
-
parseCurveParameter
public static java.util.Map.Entry<ECCurves,ASN1Object> parseCurveParameter(ASN1Object paramsObject) throws java.io.IOException
- Throws:
java.io.IOException
-
decodeECPublicKeyValue
public static final java.security.spec.ECPoint decodeECPublicKeyValue(DERParser parser) throws java.io.IOException
ASN.1 syntax according to rfc5915 is:
publicKey [1] BIT STRING OPTIONAL
- Parameters:
parser
- TheDERParser
assumed to be positioned at the start of the data- Returns:
- The encoded
ECPoint
- Throws:
java.io.IOException
- If failed to create the point
-
decodeECPublicKeyValue
public static final java.security.spec.ECPoint decodeECPublicKeyValue(ASN1Object dataObject) throws java.io.IOException
- Throws:
java.io.IOException
-
decodeECPointData
public static final java.security.spec.ECPoint decodeECPointData(ASN1Object pointData) throws java.io.IOException
- Throws:
java.io.IOException
-
-