Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/humla-spongycastle.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Dettman <peter.dettman@bouncycastle.org>2013-09-01 16:47:51 +0400
committerPeter Dettman <peter.dettman@bouncycastle.org>2013-09-01 16:47:51 +0400
commit53f9f55010d2132a4430de9eb938e67f207a8724 (patch)
tree0587fd706f5afac5ad39b35db0905053c5f06af2 /core/src/main/java/org/bouncycastle/crypto/tls/TlsDSASigner.java
parent9c25ba42b8f25ece8731194e59729dd702b6c152 (diff)
Add TLS 1.2 support to TlsSigner and implementations
Diffstat (limited to 'core/src/main/java/org/bouncycastle/crypto/tls/TlsDSASigner.java')
-rw-r--r--core/src/main/java/org/bouncycastle/crypto/tls/TlsDSASigner.java21
1 files changed, 17 insertions, 4 deletions
diff --git a/core/src/main/java/org/bouncycastle/crypto/tls/TlsDSASigner.java b/core/src/main/java/org/bouncycastle/crypto/tls/TlsDSASigner.java
index 3aeeb8f6..257ece0b 100644
--- a/core/src/main/java/org/bouncycastle/crypto/tls/TlsDSASigner.java
+++ b/core/src/main/java/org/bouncycastle/crypto/tls/TlsDSASigner.java
@@ -33,14 +33,25 @@ public abstract class TlsDSASigner
return signer.verifySignature(sigBytes);
}
- public Signer createSigner(AsymmetricKeyParameter privateKey)
+ public Signer createSigner(SignatureAndHashAlgorithm algorithm, AsymmetricKeyParameter privateKey)
{
- return makeSigner(new SHA1Digest(), true, new ParametersWithRandom(privateKey, this.context.getSecureRandom()));
+ return makeSigner(algorithm, true, new ParametersWithRandom(privateKey, this.context.getSecureRandom()));
}
- public Signer createVerifyer(AsymmetricKeyParameter publicKey)
+ public Signer createVerifyer(SignatureAndHashAlgorithm algorithm, AsymmetricKeyParameter publicKey)
{
- return makeSigner(new SHA1Digest(), false, publicKey);
+ return makeSigner(algorithm, false, publicKey);
+ }
+
+ protected Signer makeSigner(SignatureAndHashAlgorithm algorithm, boolean forSigning, CipherParameters cp)
+ {
+ if (algorithm != null
+ && (algorithm.getHash() != HashAlgorithm.sha1 || algorithm.getSignature() != getSignatureAlgorithm()))
+ {
+ throw new IllegalStateException();
+ }
+
+ return makeSigner(TlsUtils.createHash(HashAlgorithm.sha1), forSigning, cp);
}
protected Signer makeSigner(Digest d, boolean forSigning, CipherParameters cp)
@@ -50,5 +61,7 @@ public abstract class TlsDSASigner
return s;
}
+ protected abstract short getSignatureAlgorithm();
+
protected abstract DSA createDSAImpl();
}