Skip to content

Commit 3b7d30f

Browse files
committed
just saving
1 parent b12d3e6 commit 3b7d30f

6 files changed

Lines changed: 14 additions & 23 deletions

File tree

sdk/src/main/java/io/opentdf/platform/sdk/ECKeyPair.java

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ public class ECKeyPair {
3232
Security.addProvider(new BouncyCastleProvider());
3333
}
3434

35+
private final NanoTDFType.ECCurve curve;
36+
3537
public enum ECAlgorithm {
3638
ECDH,
3739
ECDSA
@@ -40,13 +42,13 @@ public enum ECAlgorithm {
4042
private static final BouncyCastleProvider BOUNCY_CASTLE_PROVIDER = new BouncyCastleProvider();
4143

4244
private KeyPair keyPair;
43-
private String curveName;
4445

4546
public ECKeyPair() {
46-
this("secp256r1", ECAlgorithm.ECDH);
47+
this(NanoTDFType.ECCurve.SECP256R1, ECAlgorithm.ECDH);
4748
}
4849

49-
public ECKeyPair(String curveName, ECAlgorithm algorithm) {
50+
public ECKeyPair(NanoTDFType.ECCurve curve, ECAlgorithm algorithm) {
51+
this.curve = curve;
5052
KeyPairGenerator generator;
5153

5254
try {
@@ -61,19 +63,13 @@ public ECKeyPair(String curveName, ECAlgorithm algorithm) {
6163
throw new RuntimeException(e);
6264
}
6365

64-
ECGenParameterSpec spec = new ECGenParameterSpec(curveName);
66+
ECGenParameterSpec spec = new ECGenParameterSpec(this.curve.curveName);
6567
try {
6668
generator.initialize(spec);
6769
} catch (InvalidAlgorithmParameterException e) {
6870
throw new RuntimeException(e);
6971
}
7072
this.keyPair = generator.generateKeyPair();
71-
this.curveName = curveName;
72-
}
73-
74-
public ECKeyPair(ECPublicKey publicKey, ECPrivateKey privateKey, String curveName) {
75-
this.keyPair = new KeyPair(publicKey, privateKey);
76-
this.curveName = curveName;
7773
}
7874

7975
public ECPublicKey getPublicKey() {
@@ -118,10 +114,6 @@ public int keySize() {
118114
return this.keyPair.getPrivate().getEncoded().length * 8;
119115
}
120116

121-
public String curveName() {
122-
return this.curveName;
123-
}
124-
125117
public byte[] compressECPublickey() {
126118
return ((ECPublicKey) this.keyPair.getPublic()).getQ().getEncoded(true);
127119
}

sdk/src/main/java/io/opentdf/platform/sdk/KASClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ public byte[] unwrap(Manifest.KeyAccess keyAccess, String policy, KeyType sessi
150150

151151
if (sessionKeyType.isEc()) {
152152
var curve = sessionKeyType.getECEcurve().get();
153-
ecKeyPair = new ECKeyPair(curve.curveName, ECKeyPair.ECAlgorithm.ECDH);
153+
ecKeyPair = new ECKeyPair(curve, ECKeyPair.ECAlgorithm.ECDH);
154154
clientPublicKey = ecKeyPair.publicKeyInPEMFormat();
155155
} else {
156156
// Initialize the RSA key pair only once and reuse it for future unwrap operations
@@ -219,7 +219,7 @@ public byte[] unwrap(Manifest.KeyAccess keyAccess, String policy, KeyType sessi
219219
}
220220

221221
public byte[] unwrapNanoTDF(NanoTDFType.ECCurve curve, String header, String kasURL) {
222-
ECKeyPair keyPair = new ECKeyPair(curve.toString(), ECKeyPair.ECAlgorithm.ECDH);
222+
ECKeyPair keyPair = new ECKeyPair(curve, ECKeyPair.ECAlgorithm.ECDH);
223223

224224
NanoTDFKeyAccess keyAccess = new NanoTDFKeyAccess();
225225
keyAccess.header = header;

sdk/src/main/java/io/opentdf/platform/sdk/NanoTDF.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ private Config.HeaderInfo getHeaderInfo(Config.NanoTDFConfig nanoTDFConfig) thro
8989
ResourceLocator kasURL = new ResourceLocator(nanoTDFConfig.kasInfoList.get(0).URL, kasInfo.KID);
9090
assert kasURL.getIdentifier() != null : "Identifier in ResourceLocator cannot be null";
9191

92-
ECKeyPair keyPair = new ECKeyPair(nanoTDFConfig.eccMode.getEllipticCurveType().curveName, ECKeyPair.ECAlgorithm.ECDSA);
92+
ECKeyPair keyPair = new ECKeyPair(nanoTDFConfig.eccMode.getEllipticCurveType(), ECKeyPair.ECAlgorithm.ECDSA);
9393

9494
// Generate symmetric key
9595
ECPublicKey kasPublicKey = ECKeyPair.publicKeyFromPem(kasInfo.PublicKey);

sdk/src/main/java/io/opentdf/platform/sdk/TDF.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ private Manifest.KeyAccess createKeyAccess(Config.TDFConfig tdfConfig, Config.KA
279279
private ECKeyWrappedKeyInfo createECWrappedKey(Config.TDFConfig tdfConfig, Config.KASInfo kasInfo, byte[] symKey) {
280280
var curve = tdfConfig.wrappingKeyType.getECEcurve().get();
281281
assert curve != null : "Wrapping key type must be an EC key type";
282-
var keyPair = new ECKeyPair(curve.curveName, ECKeyPair.ECAlgorithm.ECDH);
282+
var keyPair = new ECKeyPair(curve, ECKeyPair.ECAlgorithm.ECDH);
283283

284284
ECPublicKey kasPubKey = ECKeyPair.publicKeyFromPem(kasInfo.PublicKey);
285285
byte[] symmetricKey = ECKeyPair.computeECDHKey(kasPubKey, keyPair.getPrivateKey());

sdk/src/test/java/io/opentdf/platform/sdk/ECKeyPairTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,7 @@ public class ECKeys {
4747
public static final String salt = "L1L";
4848
}
4949
@Test
50-
void ecPublicKeyInPemformat() throws InvalidAlgorithmParameterException, NoSuchAlgorithmException,
51-
IOException, NoSuchProviderException, InvalidKeySpecException, CertificateException, InvalidKeyException {
50+
void ecPublicKeyInPemformat() {
5251
ECKeyPair keyPairA = new ECKeyPair();
5352

5453
String keypairAPubicKey = keyPairA.publicKeyInPEMFormat();
@@ -156,7 +155,7 @@ void testECDSA() {
156155

157156
String plainText = "Virtru!";
158157
for (var curve: NanoTDFType.ECCurve.values()) {
159-
ECKeyPair keyPair = new ECKeyPair(curve.name(), ECKeyPair.ECAlgorithm.ECDSA);
158+
ECKeyPair keyPair = new ECKeyPair(curve, ECKeyPair.ECAlgorithm.ECDSA);
160159
byte[] signature = ECKeyPair.computeECDSASig(plainText.getBytes(), keyPair.getPrivateKey());
161160
boolean verify = ECKeyPair.verifyECDSAig(plainText.getBytes(), signature, keyPair.getPublicKey());
162161
assertEquals(verify, true);

sdk/src/test/java/io/opentdf/platform/sdk/NanoTDFHeaderTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,11 +201,11 @@ public void testNanoTDFEncryption()
201201
byte[] tag = new byte[tagSize];
202202

203203
ECCMode eccMode = new ECCMode((byte) 0x0); // no ecdsa binding and 'secp256r1'
204-
ECKeyPair sdkECKeyPair = new ECKeyPair(eccMode.getEllipticCurveType().curveName, ECKeyPair.ECAlgorithm.ECDH);
204+
ECKeyPair sdkECKeyPair = new ECKeyPair(eccMode.getEllipticCurveType(), ECKeyPair.ECAlgorithm.ECDH);
205205
String sdkPrivateKeyForEncrypt = sdkECKeyPair.privateKeyInPEMFormat();
206206
String sdkPublicKeyForEncrypt = sdkECKeyPair.publicKeyInPEMFormat();
207207

208-
ECKeyPair kasECKeyPair = new ECKeyPair(eccMode.getEllipticCurveType().curveName, ECKeyPair.ECAlgorithm.ECDH);
208+
ECKeyPair kasECKeyPair = new ECKeyPair(eccMode.getEllipticCurveType(), ECKeyPair.ECAlgorithm.ECDH);
209209
String kasPublicKey = kasECKeyPair.publicKeyInPEMFormat();
210210
// Encrypt
211211
Header header = new Header();

0 commit comments

Comments
 (0)