diff options
| author | J08nY | 2018-08-10 11:28:55 +0200 |
|---|---|---|
| committer | J08nY | 2018-08-10 11:28:55 +0200 |
| commit | 3cd9747a4081c5448cfd071ce64433a28dd32d55 (patch) | |
| tree | c4133ce567896949bc9e51259b240c0425f2153f /src/cz/crcs/ectester/common/ec | |
| parent | 5c0cfd8398282c940407516f4021882b9ed98571 (diff) | |
| download | ECTester-3cd9747a4081c5448cfd071ce64433a28dd32d55.tar.gz ECTester-3cd9747a4081c5448cfd071ce64433a28dd32d55.tar.zst ECTester-3cd9747a4081c5448cfd071ce64433a28dd32d55.zip | |
Add utility methods for converting EC_Params to JCE EC objects.
Diffstat (limited to 'src/cz/crcs/ectester/common/ec')
| -rw-r--r-- | src/cz/crcs/ectester/common/ec/RawECPrivateKey.java | 45 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/common/ec/RawECPublicKey.java | 45 |
2 files changed, 90 insertions, 0 deletions
diff --git a/src/cz/crcs/ectester/common/ec/RawECPrivateKey.java b/src/cz/crcs/ectester/common/ec/RawECPrivateKey.java new file mode 100644 index 0000000..f4556a0 --- /dev/null +++ b/src/cz/crcs/ectester/common/ec/RawECPrivateKey.java @@ -0,0 +1,45 @@ +package cz.crcs.ectester.common.ec; + +import cz.crcs.ectester.common.util.ECUtil; + +import java.math.BigInteger; +import java.security.interfaces.ECPrivateKey; +import java.security.spec.ECParameterSpec; + +/** + * @author Jan Jancar johny@neuromancer.sk + */ +public class RawECPrivateKey implements ECPrivateKey { + private BigInteger scalar; + private ECParameterSpec params; + + public RawECPrivateKey(BigInteger scalar, ECParameterSpec params) { + this.scalar = scalar; + this.params = params; + } + + @Override + public BigInteger getS() { + return scalar; + } + + @Override + public String getAlgorithm() { + return "EC"; + } + + @Override + public String getFormat() { + return "Raw"; + } + + @Override + public byte[] getEncoded() { + return ECUtil.toByteArray(scalar, params.getOrder().bitLength()); + } + + @Override + public ECParameterSpec getParams() { + return params; + } +} diff --git a/src/cz/crcs/ectester/common/ec/RawECPublicKey.java b/src/cz/crcs/ectester/common/ec/RawECPublicKey.java new file mode 100644 index 0000000..f09feef --- /dev/null +++ b/src/cz/crcs/ectester/common/ec/RawECPublicKey.java @@ -0,0 +1,45 @@ +package cz.crcs.ectester.common.ec; + +import cz.crcs.ectester.common.util.ECUtil; + +import java.security.interfaces.ECPublicKey; +import java.security.spec.ECParameterSpec; +import java.security.spec.ECPoint; + +/** + * @author Jan Jancar johny@neuromancer.sk + */ +public class RawECPublicKey implements ECPublicKey { + private ECPoint point; + private ECParameterSpec params; + + public RawECPublicKey(ECPoint point, ECParameterSpec params) { + this.point = point; + this.params = params; + } + + @Override + public ECPoint getW() { + return point; + } + + @Override + public String getAlgorithm() { + return "EC"; + } + + @Override + public String getFormat() { + return "Raw"; + } + + @Override + public byte[] getEncoded() { + return ECUtil.toX962Uncompressed(point, params); + } + + @Override + public ECParameterSpec getParams() { + return params; + } +} |
