Skip to content

Commit 8dc34cf

Browse files
committed
coverage
1 parent a12cac3 commit 8dc34cf

File tree

1 file changed

+43
-1
lines changed

1 file changed

+43
-1
lines changed

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

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,9 @@ void settingAndGettingPolicyBinding() {
6969

7070

7171
BigInteger getRandomBigInteger(Random rand, int byteLength) {
72-
return new BigInteger(1+rand.nextInt(byteLength-1), rand);
72+
return new BigInteger((1+rand.nextInt(byteLength-1))*8, rand);
7373
}
74+
7475
@Test
7576
void testReadingSignatureWithComponentSizes() {
7677
var rand = new Random();
@@ -98,4 +99,45 @@ void testReadingSignatureWithComponentSizes() {
9899
assertThat(buffer.position()).isEqualTo(buffer.capacity());
99100
}
100101
}
102+
103+
@Test
104+
void testParsingTooBigSignatureComponents() {
105+
{
106+
var rand = new Random();
107+
var curve = NanoTDFType.ECCurve.SECP256R1;
108+
var rBytes = new BigInteger((curve.getKeySize() + 1) * 8, rand).toByteArray();
109+
var sBytes = getRandomBigInteger(rand, curve.getKeySize()).toByteArray();
110+
var buffer = ByteBuffer.allocate(rBytes.length + sBytes.length + 2);
111+
buffer.put((byte) rBytes.length);
112+
buffer.put(rBytes);
113+
buffer.put((byte) sBytes.length);
114+
buffer.put(sBytes);
115+
116+
buffer.flip();
117+
118+
ECCMode eccMode = new ECCMode();
119+
eccMode.setECDSABinding(true);
120+
eccMode.setEllipticCurve(curve);
121+
assertThrows(SDK.MalformedTDFException.class, () -> PolicyInfo.readBinding(buffer, eccMode));
122+
}
123+
124+
{
125+
var rand = new Random();
126+
var curve = NanoTDFType.ECCurve.SECP256R1;
127+
var rBytes = getRandomBigInteger(rand, curve.getKeySize()).toByteArray();
128+
var sBytes = new BigInteger((curve.getKeySize() + 1) * 8, rand).toByteArray();
129+
var buffer = ByteBuffer.allocate(rBytes.length + sBytes.length + 2);
130+
buffer.put((byte) rBytes.length);
131+
buffer.put(rBytes);
132+
buffer.put((byte) sBytes.length);
133+
buffer.put(sBytes);
134+
135+
buffer.flip();
136+
137+
ECCMode eccMode = new ECCMode();
138+
eccMode.setECDSABinding(true);
139+
eccMode.setEllipticCurve(curve);
140+
assertThrows(SDK.MalformedTDFException.class, () -> PolicyInfo.readBinding(buffer, eccMode));
141+
}
142+
}
101143
}

0 commit comments

Comments
 (0)