diff options
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/crypto/parsers/DHIESPublicKeyParser.java')
-rw-r--r-- | bcprov/src/main/java/org/bouncycastle/crypto/parsers/DHIESPublicKeyParser.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/crypto/parsers/DHIESPublicKeyParser.java b/bcprov/src/main/java/org/bouncycastle/crypto/parsers/DHIESPublicKeyParser.java new file mode 100644 index 0000000..44f5b57 --- /dev/null +++ b/bcprov/src/main/java/org/bouncycastle/crypto/parsers/DHIESPublicKeyParser.java @@ -0,0 +1,31 @@ +package org.bouncycastle.crypto.parsers; + +import java.io.IOException; +import java.io.InputStream; +import java.math.BigInteger; + +import org.bouncycastle.crypto.KeyParser; +import org.bouncycastle.crypto.params.AsymmetricKeyParameter; +import org.bouncycastle.crypto.params.DHParameters; +import org.bouncycastle.crypto.params.DHPublicKeyParameters; + +public class DHIESPublicKeyParser + implements KeyParser +{ + private DHParameters dhParams; + + public DHIESPublicKeyParser(DHParameters dhParams) + { + this.dhParams = dhParams; + } + + public AsymmetricKeyParameter readKey(InputStream stream) + throws IOException + { + byte[] V = new byte[(dhParams.getP().bitLength() + 7) / 8]; + + stream.read(V, 0, V.length); + + return new DHPublicKeyParameters(new BigInteger(1, V), dhParams); + } +} |