Package org.conscrypt
Class OpenSSLSignature
- java.lang.Object
-
- java.security.SignatureSpi
-
- org.conscrypt.OpenSSLSignature
-
- Direct Known Subclasses:
OpenSSLSignature.RSAPKCS1Padding
,OpenSSLSignature.RSAPSSPadding
,OpenSSLSignature.SHA1ECDSA
,OpenSSLSignature.SHA224ECDSA
,OpenSSLSignature.SHA256ECDSA
,OpenSSLSignature.SHA384ECDSA
,OpenSSLSignature.SHA512ECDSA
@Internal public class OpenSSLSignature extends java.security.SignatureSpi
Implements the subset of the JDK Signature interface needed for signature verification using OpenSSL.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
OpenSSLSignature.EngineType
static class
OpenSSLSignature.MD5RSA
(package private) static class
OpenSSLSignature.RSAPKCS1Padding
Base class forRSASSA-PKCS1-v1_5
signatures.(package private) static class
OpenSSLSignature.RSAPSSPadding
Base class forRSASSA-PSS
signatures.static class
OpenSSLSignature.SHA1ECDSA
static class
OpenSSLSignature.SHA1RSA
static class
OpenSSLSignature.SHA1RSAPSS
static class
OpenSSLSignature.SHA224ECDSA
static class
OpenSSLSignature.SHA224RSA
static class
OpenSSLSignature.SHA224RSAPSS
static class
OpenSSLSignature.SHA256ECDSA
static class
OpenSSLSignature.SHA256RSA
static class
OpenSSLSignature.SHA256RSAPSS
static class
OpenSSLSignature.SHA384ECDSA
static class
OpenSSLSignature.SHA384RSA
static class
OpenSSLSignature.SHA384RSAPSS
static class
OpenSSLSignature.SHA512ECDSA
static class
OpenSSLSignature.SHA512RSA
static class
OpenSSLSignature.SHA512RSAPSS
-
Field Summary
Fields Modifier and Type Field Description private NativeRef.EVP_MD_CTX
ctx
private OpenSSLSignature.EngineType
engineType
Holds the type of the Java algorithm.private long
evpMdRef
Digest algorithm (reference toEVP_MD
).private long
evpPkeyCtx
Public key algorithm context (reference toEVP_PKEY_CTX
).private OpenSSLKey
key
The current OpenSSL key we're operating on.private boolean
signing
True when engine is initialized to signing.private byte[]
singleByte
Holds a dummy buffer for writing single bytes to the digest.
-
Constructor Summary
Constructors Modifier Constructor Description private
OpenSSLSignature(long evpMdRef, OpenSSLSignature.EngineType engineType)
Creates a new OpenSSLSignature instance for the given algorithm name.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description private void
checkEngineType(OpenSSLKey pkey)
protected void
configureEVP_PKEY_CTX(long ctx)
Configures the public key algorithm context (EVP_PKEY_CTX
) associated with this operation.protected java.lang.Object
engineGetParameter(java.lang.String param)
Deprecated.protected void
engineInitSign(java.security.PrivateKey privateKey)
protected void
engineInitVerify(java.security.PublicKey publicKey)
protected void
engineSetParameter(java.lang.String param, java.lang.Object value)
Deprecated.protected byte[]
engineSign()
protected void
engineUpdate(byte input)
protected void
engineUpdate(byte[] input, int offset, int len)
protected void
engineUpdate(java.nio.ByteBuffer input)
protected boolean
engineVerify(byte[] sigBytes)
protected long
getEVP_PKEY_CTX()
Returns the public key algorithm context (EVP_PKEY_CTX
reference) associated with this operation or0
if operation hasn't been initialized.private void
initInternal(OpenSSLKey newKey, boolean signing)
private void
resetContext()
-
-
-
Field Detail
-
ctx
private NativeRef.EVP_MD_CTX ctx
-
key
private OpenSSLKey key
The current OpenSSL key we're operating on.
-
engineType
private final OpenSSLSignature.EngineType engineType
Holds the type of the Java algorithm.
-
evpMdRef
private final long evpMdRef
Digest algorithm (reference toEVP_MD
).
-
singleByte
private final byte[] singleByte
Holds a dummy buffer for writing single bytes to the digest.
-
signing
private boolean signing
True when engine is initialized to signing.
-
evpPkeyCtx
private long evpPkeyCtx
Public key algorithm context (reference toEVP_PKEY_CTX
).
-
-
Constructor Detail
-
OpenSSLSignature
private OpenSSLSignature(long evpMdRef, OpenSSLSignature.EngineType engineType)
Creates a new OpenSSLSignature instance for the given algorithm name.- Parameters:
evpMdRef
- digest algorithm (EVP_MD
reference).
-
-
Method Detail
-
resetContext
private void resetContext() throws java.security.InvalidAlgorithmParameterException
- Throws:
java.security.InvalidAlgorithmParameterException
-
configureEVP_PKEY_CTX
protected void configureEVP_PKEY_CTX(long ctx) throws java.security.InvalidAlgorithmParameterException
Configures the public key algorithm context (EVP_PKEY_CTX
) associated with this operation.The default implementation does nothing.
- Parameters:
ctx
- reference to the context (EVP_PKEY_CTX
).- Throws:
java.security.InvalidAlgorithmParameterException
-
engineUpdate
protected void engineUpdate(byte input)
- Specified by:
engineUpdate
in classjava.security.SignatureSpi
-
engineUpdate
protected void engineUpdate(byte[] input, int offset, int len)
- Specified by:
engineUpdate
in classjava.security.SignatureSpi
-
engineUpdate
protected void engineUpdate(java.nio.ByteBuffer input)
- Overrides:
engineUpdate
in classjava.security.SignatureSpi
-
engineGetParameter
@Deprecated protected java.lang.Object engineGetParameter(java.lang.String param) throws java.security.InvalidParameterException
Deprecated.- Specified by:
engineGetParameter
in classjava.security.SignatureSpi
- Throws:
java.security.InvalidParameterException
-
checkEngineType
private void checkEngineType(OpenSSLKey pkey) throws java.security.InvalidKeyException
- Throws:
java.security.InvalidKeyException
-
initInternal
private void initInternal(OpenSSLKey newKey, boolean signing) throws java.security.InvalidKeyException
- Throws:
java.security.InvalidKeyException
-
engineInitSign
protected void engineInitSign(java.security.PrivateKey privateKey) throws java.security.InvalidKeyException
- Specified by:
engineInitSign
in classjava.security.SignatureSpi
- Throws:
java.security.InvalidKeyException
-
engineInitVerify
protected void engineInitVerify(java.security.PublicKey publicKey) throws java.security.InvalidKeyException
- Specified by:
engineInitVerify
in classjava.security.SignatureSpi
- Throws:
java.security.InvalidKeyException
-
engineSetParameter
@Deprecated protected void engineSetParameter(java.lang.String param, java.lang.Object value) throws java.security.InvalidParameterException
Deprecated.- Specified by:
engineSetParameter
in classjava.security.SignatureSpi
- Throws:
java.security.InvalidParameterException
-
engineSign
protected byte[] engineSign() throws java.security.SignatureException
- Specified by:
engineSign
in classjava.security.SignatureSpi
- Throws:
java.security.SignatureException
-
engineVerify
protected boolean engineVerify(byte[] sigBytes) throws java.security.SignatureException
- Specified by:
engineVerify
in classjava.security.SignatureSpi
- Throws:
java.security.SignatureException
-
getEVP_PKEY_CTX
protected final long getEVP_PKEY_CTX()
Returns the public key algorithm context (EVP_PKEY_CTX
reference) associated with this operation or0
if operation hasn't been initialized.
-
-