- let iut_priv = Scalar::new::<Secp192r1>(&b"\xf1\x7d\x3f\xea\x36\x7b\x74\xd3\x40\x85\x1c\xa4\x27\x0d\xcb\x24\xc2\x71\xf4\x45\xbe\xd9\xd5\x27"[..]).unwrap();
- let iut_priv = Scalar::new::<Secp192r1>(&b"\x56\xe8\x53\x34\x9d\x96\xfe\x4c\x44\x24\x48\xda\xcb\x7c\xf9\x2b\xb7\xa9\x5d\xcf\x57\x4a\x9b\xd5"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xc0\x0d\x43\x57\x16\xff\xea\x53\xfd\x8c\x16\x27\x92\x41\x4c\x37\x66\x51\x87\xe5\x82\x71\x65\x39"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\xc6\xef\x61\xfe\x12\xe8\x0b\xf5\x6f\x2d\x3f\x7d\x0b\xb7\x57\x39\x45\x19\x90\x6d\x55\x50\x09\x49"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xe1\x84\xbc\x18\x24\x82\xf3\x40\x3c\x87\x87\xb8\x38\x42\x47\x74\x67\xfc\xd0\x11\xdb\x0f\x6c\x64"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\xe6\x74\x7b\x9c\x23\xba\x70\x44\xf3\x8f\xf7\xe6\x2c\x35\xe4\x03\x89\x20\xf5\xa0\x16\x3d\x3c\xda"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\x2b\x83\x8d\xbe\x73\x73\x5f\x37\xa3\x9a\x78\xd3\x19\x57\x83\xd2\x69\x91\xe8\x6f\xf4\xd9\x2d\x1a"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\xbe\xab\xed\xd0\x15\x4a\x1a\xfc\xfc\x85\xd5\x21\x81\xc1\x0f\x5e\xb4\x7a\xdc\x51\xf6\x55\x04\x7d"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\x1f\x65\xcf\x6e\x89\x78\xe1\xc1\xbc\x10\xbb\x61\xa7\xdb\x31\x1d\xe3\x10\x08\x8c\x8c\xf9\x76\x8b"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\xcf\x70\x35\x42\x26\x66\x73\x21\xd6\xe2\xba\xf4\x09\x99\xe2\xfd\x74\xc7\xa0\xf7\x93\xfa\x86\x99"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\x5f\x48\x44\xff\xcc\xe6\x10\x05\xd2\x4f\x73\x7d\xb9\x86\x75\xe9\x2f\x7b\x65\x43\xae\xb6\x10\x6c"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\xfe\x94\x25\x15\x23\x7f\xff\xdd\x7b\x4e\xb5\xc6\x49\x09\xee\xe4\x85\x6a\x07\x6c\xdf\x12\xba\xe2"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xe6\x36\x9d\xf7\x9b\x20\x7b\x8b\x86\x79\xf7\xc8\x69\xcf\xc2\x64\x85\x9d\x1a\xb5\x5a\xa4\x01\xe8"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\x33\xfe\xd1\x04\x92\xaf\xa5\xbe\xa0\x33\x3c\x0a\xf1\x2c\xac\x94\x0c\x4d\x22\x24\x55\xbc\xd0\xfe"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xef\x0b\x28\xaf\xc4\x16\x37\xd7\x37\xf4\x2e\x4c\x8a\xac\xea\xdc\x84\xba\x2e\x0b\x84\x9c\xa1\x8c"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\xf3\x55\x7c\x5d\x70\xb4\xc7\x95\x49\x60\xc3\x35\x68\x77\x6a\xdb\xe8\xe4\x36\x19\xab\xe2\x6b\x13"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xd7\x01\x12\xc5\xf0\xf0\x84\x43\x86\x49\x4a\xc1\xad\x99\xdc\xe2\x21\x41\x34\x17\x6e\xbf\xb9\xaf"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\x58\x6c\xfb\xa1\xc6\xe8\x17\x66\xed\x52\x82\x8f\x17\x7b\x1b\xe1\x4e\xbb\xc5\xb8\x33\x48\xc3\x11"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\x58\xb3\xc6\x3e\x56\xbe\xc9\xd6\x96\xbf\x9a\x88\xdf\x28\x73\x73\x83\x91\xf7\x63\x68\xaa\x2b\x49"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\xca\xd8\x10\x06\x03\xa4\xf6\x5b\xe0\x8d\x8f\xc8\xa1\xb7\xe8\x84\xc5\xff\x65\xde\xb3\xc9\x6d\x99"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xb7\xfc\xc0\xf5\x2c\x7a\x41\x1e\xdb\xed\x39\xe1\x0b\xf0\x2b\x6a\xe0\xf2\x66\x14\xc6\xb3\x25\xa2"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\x1e\xdd\x87\x9c\xc5\xc7\x96\x19\xca\xe6\xc7\x3a\x69\x1b\xd5\xa0\x39\x5c\x0e\xf3\xb3\x56\xfc\xd2"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\x6c\xe6\xad\xb2\xc3\x08\x08\xf5\x90\x04\x8c\x33\xdf\xfa\xd4\x52\x4e\xbf\x7a\x5f\xd3\x9b\x74\x7b"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\x46\x0e\x45\x22\x73\xfe\x18\x27\x60\x21\x87\xad\x3b\xeb\xee\x65\xcb\x84\x42\x3b\xb4\xf4\x75\x37"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xd1\xbd\x3a\x3e\xfa\xbf\x47\x67\xfe\x63\x80\xbd\xf0\xdb\xf4\x9d\x52\xd4\xcf\x0c\xbb\x89\x40\x4c"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\xb9\x70\x36\x50\x08\x45\x6f\x87\x58\xec\xc5\xa3\xb3\x3c\xf3\xae\x6a\x8d\x56\x81\x07\xa5\x21\x67"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xc1\xb8\x61\x0c\x8c\x63\xf8\xd4\xab\xda\x09\x3b\x9a\x11\xa5\x66\x04\x4b\xf6\x5c\x6f\xaa\x89\x99"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\x59\xc1\x5b\x8a\x24\x64\xe4\x1d\xfe\x43\x71\xc7\xf7\xda\xdf\x47\x0a\xe4\x25\x54\x4f\x81\x13\xbd"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\x1f\xe7\x76\xf7\x35\x67\xb6\xac\x0b\x0d\x67\x64\x16\x4d\xe6\xc5\xbe\x75\x1b\xa8\xd1\xff\x45\x5e"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\xa6\xe9\xb8\x85\xc6\x6b\x95\x9d\x1f\xc2\x70\x8d\x59\x1b\x6d\x32\x28\xe4\x9e\xb9\x8f\x72\x6d\x61"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\x63\x2b\xb7\x65\x1d\xbf\x49\xdd\xe9\xdd\x12\x5d\x13\xfb\x23\x4e\x06\x61\x77\x23\xbe\xed\x3d\x1b"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\xbd\xb7\x54\x09\x6f\xfb\xfb\xd8\xb0\xf3\xcb\x04\x6c\xcb\x7c\xa1\x49\xc4\xe7\x19\x20\x67\xa3\xee"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xd9\xc0\x98\xd4\x21\xd7\x41\xf6\xfa\xab\x11\x6f\x3e\x47\x31\xd2\x8c\x55\x58\xe1\x9f\xe1\x12\xa1"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\xd5\xbc\xf2\x53\x4d\xaf\xc3\xd9\x99\x64\xc7\xbd\x63\xab\x7b\xd1\x59\x99\xfe\x56\xdd\x96\x9c\x42"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xfd\xa1\xd5\xd2\x8d\x6f\xe0\xe7\x90\x9d\x6a\x8b\xaf\xa7\x82\x4d\xb5\x57\x2a\xb9\x2f\xfe\x7d\xe6"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\x43\xd4\xb9\xdf\x10\x53\xbe\x5b\x42\x68\x10\x4c\x02\x24\x4d\x3b\xf9\x59\x4b\x01\x0b\x46\xa8\xb2"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xc3\x02\x0b\x70\x91\x46\x3d\x78\x8f\x1f\x1d\x76\xf7\xcf\xee\xc8\x2e\xcd\xb3\xb7\xd9\x9c\x34\x5c"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\x94\xca\xc2\xc2\xca\x71\x47\x46\x40\x16\x70\xd9\x4e\xdb\xf3\xf6\x77\x86\x7b\x5a\x03\xbe\xe7\xad"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xb1\x85\x54\xa2\xe7\x43\xef\x0a\xa2\xf0\x40\x98\x7c\x4c\x45\x10\x04\xe0\x96\xdf\x3d\x80\xdd\xae"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\x2a\x3a\x9e\x33\xc8\xcc\x31\x07\xa9\xf9\x26\x5c\x3b\xde\xa1\x20\x65\x70\xe8\x6f\x92\xac\x70\x14"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xa7\xba\x38\xbe\x1b\xc6\x69\xdd\x23\xcc\xfc\xee\x06\x45\xb1\xf0\xdb\x8c\xf9\x42\xde\xaf\xae\xb6"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\x4a\x6b\x78\xa9\x8a\xc9\x8f\xa8\xe9\x9a\x8e\xce\x08\xec\x02\x51\x12\x5f\x85\xc6\xfd\x0e\x28\x9b"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xe7\x69\xdb\xbc\xd5\xce\x2d\x83\x51\x4b\x76\x8d\x3d\x2d\x5a\xa0\xbc\xd8\xf6\x6a\xf1\x5f\x55\x00"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\xc5\xa6\x49\x1d\x78\x84\x4d\x66\x17\xef\x33\xbe\x6b\x8b\xd5\x4d\xa2\x21\x45\x08\x85\xd5\x95\x0f"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xdb\x1b\x24\xf7\x46\x6b\xc1\x54\xe9\xd7\xd2\xc3\xca\x52\xdc\xfe\x0b\xfc\x95\x63\xc5\xfd\xb6\xf3"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\x2b\xa2\x70\x3c\x5e\x23\xf6\x46\x3c\x5b\x88\xdc\x37\x29\x2f\xab\xd3\x39\x9b\x5e\x1f\xb6\x7c\x05"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\x75\x43\x14\x89\x06\xce\xf9\xb3\x7a\x71\xa7\xc0\x83\x63\xcd\xd3\xbb\xa5\x01\x42\xd6\x52\x41\xaa"[..],
- let iut_priv = Scalar::new::<Secp192r1>(&b"\x83\x61\x18\xc6\x24\x8f\x88\x2e\x91\x47\x97\x6f\x76\x48\x26\xc1\xa2\x87\x55\xa6\x10\x29\x77\xd5"[..]).unwrap();
- let iut_pub = Point::new::<Secp192r1>(&b"\xfc\xd3\x45\xa9\x76\xc7\x20\xca\xaa\x97\xde\x66\x97\x22\x68\x25\x61\x5e\x12\x87\xa9\xef\xf6\x7e"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
- }
-
- #[test]
- fn nist_p_224() {
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\xaf\x33\xcd\x06\x29\xbc\x7e\x99\x63\x20\xa3\xf4\x03\x68\xf7\x4d\xe8\x70\x4f\xa3\x7b\x8f\xab\x69\xab\xaa\xe2\x80"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x83\x46\xa6\x0f\xc6\xf2\x93\xca\x5a\x0d\x2a\xf6\x8b\xa7\x1d\x1d\xd3\x89\xe5\xe4\x08\x37\x94\x2d\xf3\xe4\x3c\xbd"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\x8d\xe2\xe2\x6a\xdf\x72\xc5\x82\xd6\x56\x8e\xf6\x38\xc4\xfd\x59\xb1\x8d\xa1\x71\xbd\xf5\x01\xf1\xd9\x29\xe0\x48"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x13\xbf\xcd\x4f\x8e\x94\x42\x39\x3c\xab\x8f\xb4\x6b\x9f\x05\x66\xc2\x26\xb2\x2b\x37\x07\x69\x76\xf0\x61\x7a\x46"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x04\x3c\xb2\x16\xf4\xb7\x2c\xdf\x76\x29\xd6\x37\x20\xa5\x4a\xee\x0c\x99\xeb\x32\xd7\x44\x77\xda\xc0\xc2\xf7\x3d"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\x2f\x90\xf5\xc8\xea\xc9\xc7\xde\xcd\xbb\x97\xb6\xc2\xf7\x15\xab\x72\x5e\x4f\xe4\x0f\xe6\xd7\x46\xef\xbf\x4e\x1b"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x75\x6d\xd8\x06\xb9\xd9\xc3\x4d\x89\x96\x91\xec\xb4\x5b\x77\x1a\xf4\x68\xec\x00\x44\x86\xa0\xfd\xd2\x83\x41\x1e"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x5a\xd0\xdd\x6d\xba\xbb\x4f\x3c\x2e\xa5\xfe\x32\xe5\x61\xb2\xca\x55\x08\x14\x86\xdf\x2c\x7c\x15\xc9\x62\x2b\x08"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\x5b\xca\x45\xd7\x93\xe7\xfe\x99\xa8\x43\x70\x4e\xd8\x38\x31\x5a\xb1\x4a\x5f\x62\x77\x50\x7e\x9b\xc3\x75\x31"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x0f\x53\x7b\xf1\xc1\x12\x2c\x55\x65\x6d\x25\xe8\xaa\x84\x17\xe0\xb4\x4b\x15\x26\xae\x05\x23\x14\x4f\x99\x21\xc4"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x0a\xa6\xff\x55\xa5\xd8\x20\xef\xcb\x4e\x7d\x10\xb8\x45\xea\x3c\x9f\x9b\xc5\xdf\xf8\x61\x06\xdb\x85\x31\x8e\x22"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\x2f\x96\x75\x41\x31\xe0\x96\x81\x98\xaa\x78\xfb\xe8\xc2\x01\xdc\x5f\x35\x81\xc7\x92\xde\x48\x73\x40\xd3\x24\x48"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x2b\x36\x31\xd2\xb0\x61\x79\xb3\x17\x4a\x10\x0f\x7f\x57\x13\x1e\xee\xa8\x94\x7b\xe0\x78\x6c\x3d\xc6\x4b\x22\x39"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\xef\xe6\xe6\xe2\x5a\xff\xaf\x54\xc9\x8d\x00\x2a\xbb\xc6\x32\x8d\xa1\x59\x40\x5a\x1b\x75\x2e\x32\xdc\x23\x95\x0a"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\x35\x5e\x96\x29\x20\xbd\xe0\x43\x69\x5f\x6b\xff\xb4\xb3\x55\xc6\x3d\xa6\xf5\xde\x66\x5e\xd4\x6f\x2e\xc8\x17\xe2"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x45\x11\x40\x3d\xe2\x90\x59\xf6\x9a\x47\x5c\x5a\x6a\x5f\x6c\xab\xed\x5d\x9f\x01\x44\x36\xa8\xcb\x70\xa0\x23\x38"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x61\xcb\x29\x32\x52\x40\x01\xe5\xe9\xee\xed\x6d\xf7\xd9\xc8\x93\x5e\xe3\x32\x20\x29\xed\xd7\xaa\x8a\xcb\xfd\x51"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\xd5\x0e\x4a\xda\xbf\xd9\x89\xd7\xdb\xc7\xcf\x40\x52\x54\x6c\xc7\xc4\x47\xa9\x76\x30\x43\x69\x97\xad\x4b\x95\x36"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x31\x4a\x0b\x26\xdd\x31\xc2\x48\x84\x5d\x7c\xc1\x7b\x61\xca\xd4\x60\x82\x59\xbe\xd8\x5a\x58\xd1\xf1\xff\xd3\x78"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x8c\x7a\xce\x34\x71\x71\xf9\x2d\xef\x98\xd8\x45\x47\x5f\xc8\x2e\x1d\x14\x96\xda\x81\xee\x58\xf5\x05\xb9\x85\xfa"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\xb1\xa8\xdc\xac\x89\xac\xa2\x79\x93\x20\xb4\x51\xdf\x1c\x7f\xf4\xd9\x75\x67\xab\xb6\x81\x41\xc0\xd9\x5f\xc2\xaa"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\xab\xe6\x84\x3b\xee\xc2\xfd\x9e\x5f\xb6\x47\x30\xd0\xbe\x4d\x16\x54\x38\xce\x92\x2e\xd7\x5d\xd8\x0b\x46\x03\xe5"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x38\x2f\xeb\x9b\x9b\xa1\x0f\x18\x9d\x99\xe7\x1a\x89\xcd\xfe\x44\xcb\x55\x4c\xec\x13\xa2\x12\x84\x09\x77\xfb\x68"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\xab\xb6\xf1\xe3\x77\x3f\xf8\xfc\x73\xae\xa2\xa0\xb1\x07\x80\x9c\xe7\x0a\xdc\xef\xed\x6e\x41\xfc\x5c\xb4\x30\x45"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x13\xcf\x9d\x6d\x2c\x9a\xae\x82\x74\xc2\x7d\x44\x6a\xfd\x0c\x88\x8f\xfd\xd5\x2a\xe2\x99\xa3\x59\x84\xd4\xf5\x27"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\xe0\xd6\x20\x35\x10\x1e\xf4\x87\xc4\x85\xc6\x0f\xb4\x50\x0e\xeb\xe6\xa3\x2e\xc6\x4d\xbe\x97\xdb\xe0\x23\x2c\x46"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\x88\x53\x77\x35\xe9\xb2\x3e\x3e\x0e\x07\x6f\x13\x5a\x82\xd3\x3f\x9b\xff\xb4\x65\xf3\xab\xce\x83\x22\xa6\x2a\x62"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x96\x5b\x63\x7c\x0d\xfb\xc0\xcf\x95\x40\x35\x68\x6d\x70\xf7\xec\x30\x92\x9e\x66\x4e\x52\x1d\xba\xa2\x28\x06\x59"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\xb9\x6a\xde\x5b\x73\xba\x72\xaa\x8b\x6e\x4d\x74\xd7\xbf\x9c\x58\xe9\x62\xff\x78\xeb\x54\x22\x87\xc7\xb4\x4b\xa2"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\x37\x68\x29\x26\xa5\x4f\x70\xa4\xc1\x74\x8f\x54\xd5\x0d\x5b\x00\x13\x8a\x05\x5f\x92\x4f\x2c\x65\xe5\xb0\xbb\xe4"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x73\xcc\x64\x53\x72\xca\x2e\x71\x63\x7c\xda\x94\x3d\x81\x48\xf3\x38\x2a\xb6\xdd\x0f\x2e\x1a\x49\xda\x94\xe1\x34"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\xa4\x0d\x7e\x12\x04\x9c\x71\xe6\x52\x2c\x7f\xf2\x38\x42\x24\x06\x1c\x3a\x45\x70\x58\xb3\x10\x55\x76\x55\xb8\x54"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\x39\x98\x01\x24\x3b\xfe\x0c\x2d\xa9\xb0\xa5\x3c\x8c\xa5\x7f\x2e\xee\x87\xaa\xa9\x4a\x8e\x4d\x5e\x02\x9f\x42\xca"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x54\x65\x78\x21\x62\x50\x35\x4e\x44\x9e\x21\x54\x6d\xd1\x1c\xd1\xc5\x17\x42\x36\x73\x9a\xca\xd9\xce\x0f\x45\x12"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\xad\x25\x19\xbc\x72\x4d\x48\x4e\x02\xa6\x9f\x05\x14\x9b\xb0\x47\x71\x4b\xf0\xf5\x98\x6f\xac\x2e\x22\x2c\xd9\x46"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\xdf\x9c\x1e\x0e\xf1\x5e\x53\xb9\xf6\x26\xe2\xbe\x1c\xbe\x89\x36\x39\xc0\x6f\x3e\x04\x39\xee\x95\xd7\xd4\xb1\xe3"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x1d\x46\xb1\xdc\x3a\x28\x12\x3c\xb5\x13\x46\xe6\x7b\xae\xc5\x64\x04\x86\x86\x78\xfa\xf7\xd0\xe8\xb2\xaf\xa2\x2a"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x3d\x31\x2a\x9b\x9d\x8e\xd0\x91\x40\x90\x0b\xba\xc1\xe0\x95\x52\x7e\xbc\x9e\x3c\x64\x93\xbc\xf3\x66\x6e\x3a\x29"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\xb4\xa0\x19\x8d\xc8\x81\x0e\x88\x44\x25\xb7\x50\x92\x8b\x0c\x96\x0c\x31\xf7\xa9\x96\x63\x40\x0b\x01\xa1\x79\xdf"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x26\x6d\x03\x8c\xc7\xa4\xfe\x21\xf6\xc9\x76\x31\x8e\x82\x7b\x82\xbb\x5b\x8f\x74\x43\xa5\x52\x98\x13\x65\x06\xe0"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x8c\xe0\x82\x2d\xc2\x4c\x15\x39\x95\x75\x5a\xc3\x50\x73\x7e\xf5\x06\x64\x1c\x7d\x75\x2b\x4f\x93\x00\xc6\x12\xed"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\xdf\xc7\xec\x13\x76\x90\xcd\x6d\x12\xfd\xb2\xfd\x0b\x8c\x53\x14\x58\x21\x08\x76\x9c\x2b\x72\x2f\xfb\x39\x58"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\xeb\x0a\x09\xf7\xa1\xc2\x36\xa6\x1f\x59\x58\x09\xec\x56\x70\xef\xd9\x2e\x45\x98\xd5\xe6\x13\xe0\x92\xcd\xfd\xca"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x0f\xf9\xb4\x85\x32\x5a\xb7\x7f\x29\xe7\xbc\x37\x9f\xed\x74\xbf\xac\x85\x94\x82\xda\x0d\xee\x75\x28\xc1\x9d\xb2"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\x7e\x60\x3e\x69\x76\xdb\x83\xc3\x60\x11\x50\x8f\xa6\x95\xd1\xb5\x15\x24\x9e\x2e\x54\xb4\x8f\xcb\xcf\xb9\x02\x47"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x6b\x2f\x6b\x18\xa5\x87\xf5\x62\xff\xc6\x1b\xd9\xb0\x04\x73\x22\x28\x69\x86\xa7\x8f\x1f\xd1\x39\xb8\x4f\x7c\x24"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x19\xcf\x5f\xf6\x30\x64\x67\xf2\x8b\x9f\xe0\x67\x5a\x43\xc0\x58\x25\x52\xc8\xc1\x2e\x59\xce\x7c\x38\xf2\x92\xb1"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\xfc\x20\xe9\x06\xe6\x09\xc1\x12\xcf\xc2\xe0\xfe\xa6\x30\x38\x82\xc5\xdb\x94\xe8\x7e\x02\x23\x73\xab\x2c\x08\x2a"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x32\x81\x01\xba\x82\x6a\xcd\x75\xff\x9f\x34\xd5\x57\x4c\xe0\xdb\xc9\x2f\x70\x9b\xad\x8d\x7a\x33\xc4\x79\x40\xc1"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x90\xa1\x53\x68\xe3\x53\x2c\x0b\x1e\x51\xe5\x5d\x13\x94\x47\xc2\xc8\x9b\xc1\x60\x71\x9d\x69\x72\x91\xea\x7c\x14"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\xc6\x83\x7d\x50\x6e\x97\x6d\xa7\xdb\x3a\xd1\x26\x7c\x35\x9d\xff\x2e\xa6\xfb\x0b\x7f\x7f\x8e\x77\x02\x4c\x59\xe9"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x81\xe3\x42\x70\x87\x1e\x2e\xbb\xd9\x41\x83\xf6\x17\xb4\xae\x15\xf0\x41\x6d\xd6\x34\xfe\x6e\x93\x4c\xf3\xc0"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x8e\x08\x38\xe0\x5e\x17\x21\x49\x10\x67\xe1\xca\xbc\x2e\x80\x51\xb2\x90\xe2\x61\x6e\xec\x42\x7b\x71\x21\x89\x7d"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\xe9\x15\x0f\x77\x00\x75\x62\x60\x19\xe1\x8f\x95\x47\x3b\x71\xe6\x82\x80\x41\x79\x1d\x3f\x08\xd3\xfa\xee\xaa\x2b"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x26\x23\x63\x2f\xdf\x0b\xd8\x56\x80\x5a\x69\xaa\x18\x6d\x41\x33\xef\x59\x04\xe1\xf6\x55\xa9\x72\xd6\x6c\xce\x07"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x38\x10\x6e\x93\xf1\x6a\x38\x1a\xdb\x1d\x72\xce\xe3\xda\x66\xae\x46\x2a\xd4\xbb\xfe\xa9\xec\xdf\x35\xd0\x81\x4e"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\x7b\xe6\xc4\xc9\x17\x82\x9a\xb6\x57\xdd\x79\xe8\x63\x7d\x7a\xef\xd2\xf8\x1f\x0d\xe7\x65\x4d\x95\x7e\x97\x65\x8d"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x8e\xe4\xd1\xdc\xc3\x1d\xee\x4b\xf6\xfe\x21\xca\x8a\x58\x77\x21\xd9\x10\xac\xfb\x12\x2c\x16\xc2\xa7\x7a\x81\x52"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\xe5\xd1\x71\x84\x31\xcf\x50\xf6\xcb\xd1\xbc\x80\x19\xfa\x16\x76\x2d\xfa\x12\xc9\x89\xe5\x99\x99\x77\xfb\x4e\xa2"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\x2e\xa4\x96\x6e\x7f\x92\xed\x7f\x5c\xc6\x1f\xde\x79\x20\x45\xf6\x3b\x73\x1d\x6e\x7d\x0d\xe2\x57\x7f\x2d\x8e\xce"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x97\xdc\xbe\x6d\x28\x33\x58\x82\xa6\xd1\x93\xcc\x54\xa1\x06\x3d\xd0\x77\x5d\xc3\x28\x56\x53\x00\xbb\x99\xe6\x91"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x3d\x63\x56\x91\xb6\x2a\x9a\x92\x7c\x63\x39\x51\xc9\x36\x9c\x88\x62\xbd\x21\x19\xd3\x09\x70\xc2\x64\x47\x27\xd6"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\x43\x8b\xbb\x98\x05\x17\xaf\xb2\x0b\xe1\xd6\x74\xe3\xac\x2b\x31\xce\xf0\x7a\x9b\x23\xfb\x8f\x6e\x38\xe0\xd6\xc0"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\xce\x91\x26\xdd\x53\x97\x2d\xea\x1d\xe1\xd1\x1e\xfe\xf9\x00\xde\x34\xb6\x61\x85\x9c\x46\x48\xc5\xc0\xe5\x34\xf7"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\xac\xf3\xc8\x5b\xbd\xc3\x79\xf0\x2f\x5e\xa3\x6e\x7f\x0f\x53\x09\x5a\x9e\x70\x46\xa2\x86\x85\xa8\x65\x9b\xf7\x98"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\xff\x75\x11\x21\x5c\x71\xd7\x96\xbd\x64\x6e\x84\x74\xbe\x44\x16\xb9\x16\x84\xce\x0d\x26\x9e\xf6\xf4\x22\x01\x3b"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x84\x41\x99\x67\xd6\xcf\xad\x41\xe7\x5a\x02\xb6\xda\x60\x5a\x97\x94\x9a\x18\x3a\x97\xc3\x06\xc4\xb4\x6e\x66\xa5"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\xcf\xfd\x62\xcb\x00\xa0\xe3\x16\x3f\xbf\x2c\x39\x7f\xad\xc9\x61\x82\x10\xf8\x6b\x4f\x54\xa6\x75\x28\x73\x05\xf0"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\x04\xbf\x4d\x94\x8f\x44\x30\xd1\x8b\x4e\xd6\xc9\x6d\xba\xf9\x81\xfa\x11\xa4\x03\xed\x16\x88\x7f\x06\x75\x49\x81"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x7c\x9c\xac\x35\x76\x80\x63\xc2\x82\x7f\x60\xa7\xf5\x13\x88\xf2\xa8\xf4\xb7\xf8\xcd\x73\x6b\xd6\xbc\x33\x74\x77"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\x85\xf9\x03\xe4\x39\x43\xd1\x3c\x68\x93\x2e\x71\x0e\x80\xde\x52\xcb\xc0\xb8\xf1\xa1\x41\x8e\xa4\xda\x07\x92\x99"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\x97\x0a\x4a\x7e\x01\xd4\x18\x84\x97\xce\xb4\x69\x55\xeb\x1b\x84\x2d\x90\x85\x81\x9a\x9b\x92\x5c\x84\x52\x9d\x3d"[..],
- let got_z = point_mul(&iut_priv, &cav_pub).unwrap();
- assert_eq!(&got_z.as_bytes().0[..], z);
- }
-
- {
- let cav_pub = Point::new::<Secp224r1>(&b"\x08\x5a\x76\x42\xad\x8e\x59\xb1\xa3\xe8\x72\x6a\x75\x47\xaf\xbe\xcf\xfd\xac\x1d\xab\x7e\x57\x23\x0c\x6a\x9d\xf4"[..],
- let iut_priv = Scalar::new::<Secp224r1>(&b"\xcc\xe6\x48\x91\xa3\xd0\x12\x9f\xee\x0d\x4a\x96\xcf\xbe\x7a\xc4\x70\xb8\x5e\x96\x75\x29\x05\x7c\xfa\x31\xa1\xd9"[..]).unwrap();
- let iut_pub = Point::new::<Secp224r1>(&b"\xa6\xb2\x96\x32\xdb\x94\xda\x21\x25\xdc\x1c\xf8\x0e\x03\x70\x26\x87\xb2\xac\xc1\x12\x20\x22\xfa\x21\x74\x76\x5a"[..],