diff options
Diffstat (limited to 'libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/parsers/DHIESPublicKeyParser.java')
-rw-r--r-- | libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/parsers/DHIESPublicKeyParser.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/parsers/DHIESPublicKeyParser.java b/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/parsers/DHIESPublicKeyParser.java new file mode 100644 index 000000000..26ba1193a --- /dev/null +++ b/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/parsers/DHIESPublicKeyParser.java @@ -0,0 +1,31 @@ +package org.spongycastle.crypto.parsers; + +import java.io.IOException; +import java.io.InputStream; +import java.math.BigInteger; + +import org.spongycastle.crypto.KeyParser; +import org.spongycastle.crypto.params.AsymmetricKeyParameter; +import org.spongycastle.crypto.params.DHParameters; +import org.spongycastle.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); + } +} |