@@ -80,17 +80,28 @@ public void testRoundTrip() throws CborException, CoseException {
8080 }
8181
8282 @ Test
83- public void testConversion () throws CborException , CoseException {
84- final String cborString = "A4010220012158205A88D182BCE5F42EFA59943F33359D2E8A968FF289D93E5FA44"
85- + "4B624343167FE225820B16E8CF858DDC7690407BA61D4C338237A8CFCF3DE6AA672FC60A557AA32FC67" ;
86- final ByteString x = new ByteString (X_BYTES );
87- final ByteString y = new ByteString (Y_BYTES );
88- final Ec2SigningKey sKey = Ec2SigningKey .parse (TestUtilities .hexStringToByteArray (cborString ));
89- Assert .assertEquals (Headers .KEY_TYPE_EC2 , sKey .getKeyType ());
90- Assert .assertEquals (new UnsignedInteger (Headers .CURVE_EC2_P256 ),
91- sKey .getLabels ().get (Headers .KEY_PARAMETER_CURVE ));
92- Assert .assertEquals (x , sKey .getLabels ().get (Headers .KEY_PARAMETER_X ));
93- Assert .assertEquals (y , sKey .getLabels ().get (Headers .KEY_PARAMETER_Y ));
83+ public void testCoordinatesNotOnCurve () {
84+ final int [] allCurves = new int []{
85+ Headers .CURVE_EC2_P256 ,
86+ Headers .CURVE_EC2_P384 ,
87+ Headers .CURVE_EC2_P521
88+ };
89+
90+ for (int curve : allCurves ) {
91+ final Map map = new Map ();
92+ map .put (new UnsignedInteger (Headers .KEY_PARAMETER_KEY_TYPE ),
93+ new UnsignedInteger (Headers .KEY_TYPE_EC2 ));
94+ map .put (new NegativeInteger (Headers .KEY_PARAMETER_CURVE ), new UnsignedInteger (curve ));
95+ map .put (new NegativeInteger (Headers .KEY_PARAMETER_X ),
96+ new ByteString (
97+ TestUtilities .hexStringToByteArray (
98+ "59cc8d401bbd23517c7b5e948d269190d2a897e9061d1af3bc0398d77edd1400" )));
99+ map .put (new NegativeInteger (Headers .KEY_PARAMETER_Y ),
100+ new ByteString (
101+ TestUtilities .hexStringToByteArray (
102+ "77550f5dbc8b3fbbb35c099961d51a956c7228c6e36aeccb4c95ac69cf27f7e6" )));
103+ assertThrows (IllegalArgumentException .class , () -> new Ec2SigningKey (map ));
104+ }
94105 }
95106
96107 @ Test
0 commit comments