validate-test.cc 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. /*############################################################################
  2. # Copyright 2016-2017 Intel Corporation
  3. #
  4. # Licensed under the Apache License, Version 2.0 (the "License");
  5. # you may not use this file except in compliance with the License.
  6. # You may obtain a copy of the License at
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS,
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. # See the License for the specific language governing permissions and
  14. # limitations under the License.
  15. ############################################################################*/
  16. /*!
  17. * \file
  18. * \brief native type validation unit tests.
  19. *
  20. * \warning to run the tests in this file you must build a non-shared mode.
  21. */
  22. #ifndef SHARED
  23. #include <cstring>
  24. #include <vector>
  25. #include "epid/common-testhelper/epid_gtest-testhelper.h"
  26. #include "epid/member/tiny/unittests/member-testhelper.h"
  27. #include "gtest/gtest.h"
  28. extern "C" {
  29. #include "epid/common/types.h"
  30. #include "epid/member/tiny/math/pairing.h"
  31. #include "epid/member/tiny/src/native_types.h"
  32. #include "epid/member/tiny/src/validate.h"
  33. }
  34. namespace {
  35. //////////////////////////////////////////////////////////////////////////
  36. // GroupPubKeyIsInRange Tests
  37. TEST_F(EpidMemberTest, GroupPubKeyIsInRangePasses) {
  38. NativeGroupPubKey const input = {
  39. {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  40. 0x00, 0x00, 0x00, 0x01}, // group id
  41. {{{{0xb580e099, 0x434c62fd, 0x64cee3ce, 0xd06d8f9d, 0x7e27b0cb,
  42. 0x3d753d61, 0xe21b17eb, 0xb36fff81}}},
  43. {{{0x74f459ee, 0xd8693ea1, 0x82457e7f, 0xee3d6642, 0xe94dae9c,
  44. 0xfdb5b79d, 0xe08859a4, 0x3a075680}}}}, // h1
  45. {{{{0xbcdd7fe1, 0x29666163, 0xd55ba704, 0xdc99ed42, 0x5474107b,
  46. 0xd5dbca1c, 0x63c2518e, 0xd2742e9f}}},
  47. {{{0xe78e1084, 0x93a56ecc, 0xde4ceacb, 0xda3f517d, 0xe85b087b,
  48. 0x48120aa6, 0xe314ac72, 0x765dc06e}}}}, // h2
  49. {{{{{0x0728e896, 0x8dcd3688, 0x6a95cac6, 0x788753f6, 0x401ba5b6,
  50. 0x50719451, 0xe20fca1c, 0xbd195a95}}},
  51. {{{0xe2f4b3a1, 0x22d9fde0, 0x0f6c56f5, 0x2414cfd1, 0x15d775f8,
  52. 0xa6657a68, 0xb86ae7e5, 0xca78115b}}}},
  53. {{{{0x57e4f33c, 0x0a3b5896, 0x89c2399c, 0x898846dd, 0x5deef56a,
  54. 0xbc077230, 0xe8b3c725, 0x9021a7e0}}},
  55. {{{0xee1140a9, 0x837d3e31, 0x8e25c6ad, 0xba6bf0da, 0x1f3deaa2,
  56. 0x5d0a88db, 0x1bb6f705, 0x79516936}}}}}};
  57. EXPECT_TRUE(GroupPubKeyIsInRange(&input));
  58. }
  59. TEST_F(EpidMemberTest, GroupPubKeyIsInRangeFails) {
  60. NativeGroupPubKey const input = {
  61. {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  62. 0x00, 0x00, 0x00, 0x01}, // group id
  63. {{{{0xAED33013, 0xD3292DDB, 0x12980A82, 0x0CDC65FB, 0xEE71A49F,
  64. 0x46E5F25E, 0xFFFCF0CD, 0xFFFFFFFF}}}, //< q
  65. {{{0x74f459ee, 0xd8693ea1, 0x82457e7f, 0xee3d6642, 0xe94dae9c,
  66. 0xfdb5b79d, 0xe08859a4, 0x3a075680}}}}, // h1
  67. {{{{0xbcdd7fe1, 0x29666163, 0xd55ba704, 0xdc99ed42, 0x5474107b,
  68. 0xd5dbca1c, 0x63c2518e, 0xd2742e9f}}},
  69. {{{0xe78e1084, 0x93a56ecc, 0xde4ceacb, 0xda3f517d, 0xe85b087b,
  70. 0x48120aa6, 0xe314ac72, 0x765dc06e}}}}, // h2
  71. {{{{{0x0728e896, 0x8dcd3688, 0x6a95cac6, 0x788753f6, 0x401ba5b6,
  72. 0x50719451, 0xe20fca1c, 0xbd195a95}}},
  73. {{{0xe2f4b3a1, 0x22d9fde0, 0x0f6c56f5, 0x2414cfd1, 0x15d775f8,
  74. 0xa6657a68, 0xb86ae7e5, 0xca78115b}}}},
  75. {{{{0x57e4f33c, 0x0a3b5896, 0x89c2399c, 0x898846dd, 0x5deef56a,
  76. 0xbc077230, 0xe8b3c725, 0x9021a7e0}}},
  77. {{{0xee1140a9, 0x837d3e31, 0x8e25c6ad, 0xba6bf0da, 0x1f3deaa2,
  78. 0x5d0a88db, 0x1bb6f705, 0x79516936}}}}}};
  79. EXPECT_FALSE(GroupPubKeyIsInRange(&input));
  80. }
  81. //////////////////////////////////////////////////////////////////////////
  82. // MembershipCredentialIsInRange Tests
  83. TEST_F(EpidMemberTest, MembershipCredentialIsInRangePasses) {
  84. NativeMembershipCredential const input = {
  85. {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  86. 0x00, 0x00, 0x00, 0x01}, // group id
  87. {{{{0x196254db, 0x570890e8, 0xdaf296ec, 0x87683f4e, 0xeb4caf8a,
  88. 0xacbfdd77, 0xf468e15f, 0x46c969ee}}},
  89. {{{0x82803777, 0x16249880, 0xffa64ba8, 0xae43de62, 0x0acf364f,
  90. 0x9a1b8aad, 0x91e4a81d, 0x1e522316}}}}, // A
  91. {0x1372c377, 0x00147c6b, 0x46ddb71b, 0xd09db9e4, 0x5a611086, 0x105eafd8,
  92. 0xa1e0d7df, 0x0a30ae43} // x
  93. };
  94. EXPECT_TRUE(MembershipCredentialIsInRange(&input));
  95. }
  96. TEST_F(EpidMemberTest, MembershipCredentialIsInRangeFails) {
  97. NativeMembershipCredential const input = {
  98. {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  99. 0x00, 0x00, 0x00, 0x01}, // group id
  100. {{{{0xAED33013, 0xD3292DDB, 0x12980A82, 0x0CDC65FB, 0xEE71A49F,
  101. 0x46E5F25E, 0xFFFCF0CD, 0xFFFFFFFF}}}, //< q
  102. {{{0x82803777, 0x16249880, 0xffa64ba8, 0xae43de62, 0x0acf364f,
  103. 0x9a1b8aad, 0x91e4a81d, 0x1e522316}}}}, // A
  104. {0x1372c377, 0x00147c6b, 0x46ddb71b, 0xd09db9e4, 0x5a611086, 0x105eafd8,
  105. 0xa1e0d7df, 0x0a30ae43} // x
  106. };
  107. EXPECT_FALSE(MembershipCredentialIsInRange(&input));
  108. }
  109. //////////////////////////////////////////////////////////////////////////
  110. // MembershipCredentialIsInGroup Tests
  111. TEST_F(EpidMemberTest, MembershipCredentialIsInGroupPasses) {
  112. PairingState pairing_state;
  113. PairingInit(&pairing_state);
  114. NativeMembershipCredential const input = {
  115. {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  116. 0x00, 0x00, 0x00, 0x01}, // group id
  117. {{{{0x196254db, 0x570890e8, 0xdaf296ec, 0x87683f4e, 0xeb4caf8a,
  118. 0xacbfdd77, 0xf468e15f, 0x46c969ee}}},
  119. {{{0x82803777, 0x16249880, 0xffa64ba8, 0xae43de62, 0x0acf364f,
  120. 0x9a1b8aad, 0x91e4a81d, 0x1e522316}}}}, // A
  121. {0x1372c377, 0x00147c6b, 0x46ddb71b, 0xd09db9e4, 0x5a611086, 0x105eafd8,
  122. 0xa1e0d7df, 0x0a30ae43} // x
  123. };
  124. FpElem const f = {0x636131c7, 0x362d4135, 0xa707879b, 0xa16567fd,
  125. 0xe07cc68e, 0x05d64356, 0x6d47090b, 0x4840b56c}; // f
  126. NativeGroupPubKey const pubkey = {
  127. {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  128. 0x00, 0x00, 0x00, 0x01}, // group id
  129. {{{{0xb580e099, 0x434c62fd, 0x64cee3ce, 0xd06d8f9d, 0x7e27b0cb,
  130. 0x3d753d61, 0xe21b17eb, 0xb36fff81}}},
  131. {{{0x74f459ee, 0xd8693ea1, 0x82457e7f, 0xee3d6642, 0xe94dae9c,
  132. 0xfdb5b79d, 0xe08859a4, 0x3a075680}}}}, // h1
  133. {{{{0xbcdd7fe1, 0x29666163, 0xd55ba704, 0xdc99ed42, 0x5474107b,
  134. 0xd5dbca1c, 0x63c2518e, 0xd2742e9f}}},
  135. {{{0xe78e1084, 0x93a56ecc, 0xde4ceacb, 0xda3f517d, 0xe85b087b,
  136. 0x48120aa6, 0xe314ac72, 0x765dc06e}}}}, // h2
  137. {{{{{0x0728e896, 0x8dcd3688, 0x6a95cac6, 0x788753f6, 0x401ba5b6,
  138. 0x50719451, 0xe20fca1c, 0xbd195a95}}},
  139. {{{0xe2f4b3a1, 0x22d9fde0, 0x0f6c56f5, 0x2414cfd1, 0x15d775f8,
  140. 0xa6657a68, 0xb86ae7e5, 0xca78115b}}}},
  141. {{{{0x57e4f33c, 0x0a3b5896, 0x89c2399c, 0x898846dd, 0x5deef56a,
  142. 0xbc077230, 0xe8b3c725, 0x9021a7e0}}},
  143. {{{0xee1140a9, 0x837d3e31, 0x8e25c6ad, 0xba6bf0da, 0x1f3deaa2,
  144. 0x5d0a88db, 0x1bb6f705, 0x79516936}}}}}};
  145. EXPECT_TRUE(
  146. MembershipCredentialIsInGroup(&input, &f, &pubkey, &pairing_state));
  147. }
  148. TEST_F(EpidMemberTest, MembershipCredentialIsInGroupFails) {
  149. PairingState pairing_state;
  150. PairingInit(&pairing_state);
  151. NativeMembershipCredential const input = {
  152. {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  153. 0x00, 0x00, 0x00, 0x02}, // group id
  154. {{{{0x196254db, 0x570890e8, 0xdaf296ec, 0x87683f4e, 0xeb4caf8a,
  155. 0xacbfdd77, 0xf468e15f, 0x46c969ee}}},
  156. {{{0x82803777, 0x16249880, 0xffa64ba8, 0xae43de62, 0x0acf364f,
  157. 0x9a1b8aad, 0x91e4a81d, 0x1e522316}}}}, // A
  158. {0x1372c377, 0x00147c6b, 0x46ddb71b, 0xd09db9e4, 0x5a611086, 0x105eafd8,
  159. 0xa1e0d7df, 0x0a30ae43} // x
  160. };
  161. FpElem const f = {0x636131c7, 0x362d4135, 0xa707879b, 0xa16567fd,
  162. 0xe07cc68e, 0x05d64356, 0x6d47090b, 0x4840b56c}; // f
  163. NativeGroupPubKey const pubkey = {
  164. {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  165. 0x00, 0x00, 0x00, 0x01}, // group id
  166. {{{{0xb580e099, 0x434c62fd, 0x64cee3ce, 0xd06d8f9d, 0x7e27b0cb,
  167. 0x3d753d61, 0xe21b17eb, 0xb36fff81}}},
  168. {{{0x74f459ee, 0xd8693ea1, 0x82457e7f, 0xee3d6642, 0xe94dae9c,
  169. 0xfdb5b79d, 0xe08859a4, 0x3a075680}}}}, // h1
  170. {{{{0xbcdd7fe1, 0x29666163, 0xd55ba704, 0xdc99ed42, 0x5474107b,
  171. 0xd5dbca1c, 0x63c2518e, 0xd2742e9f}}},
  172. {{{0xe78e1084, 0x93a56ecc, 0xde4ceacb, 0xda3f517d, 0xe85b087b,
  173. 0x48120aa6, 0xe314ac72, 0x765dc06e}}}}, // h2
  174. {{{{{0x0728e896, 0x8dcd3688, 0x6a95cac6, 0x788753f6, 0x401ba5b6,
  175. 0x50719451, 0xe20fca1c, 0xbd195a95}}},
  176. {{{0xe2f4b3a1, 0x22d9fde0, 0x0f6c56f5, 0x2414cfd1, 0x15d775f8,
  177. 0xa6657a68, 0xb86ae7e5, 0xca78115b}}}},
  178. {{{{0x57e4f33c, 0x0a3b5896, 0x89c2399c, 0x898846dd, 0x5deef56a,
  179. 0xbc077230, 0xe8b3c725, 0x9021a7e0}}},
  180. {{{0xee1140a9, 0x837d3e31, 0x8e25c6ad, 0xba6bf0da, 0x1f3deaa2,
  181. 0x5d0a88db, 0x1bb6f705, 0x79516936}}}}}};
  182. EXPECT_FALSE(
  183. MembershipCredentialIsInGroup(&input, &f, &pubkey, &pairing_state));
  184. }
  185. //////////////////////////////////////////////////////////////////////////
  186. // PrivKeyIsInRange Tests
  187. TEST_F(EpidMemberTest, PrivKeyIsInRangePasses) {
  188. NativePrivKey const input = {
  189. {
  190. {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  191. 0x00, 0x00, 0x00, 0x00, 0x01}, // group id
  192. {{{{0x196254db, 0x570890e8, 0xdaf296ec, 0x87683f4e, 0xeb4caf8a,
  193. 0xacbfdd77, 0xf468e15f, 0x46c969ee}}},
  194. {{{0x82803777, 0x16249880, 0xffa64ba8, 0xae43de62, 0x0acf364f,
  195. 0x9a1b8aad, 0x91e4a81d, 0x1e522316}}}}, // A
  196. {0x1372c377, 0x00147c6b, 0x46ddb71b, 0xd09db9e4, 0x5a611086,
  197. 0x105eafd8, 0xa1e0d7df, 0x0a30ae43} // x
  198. },
  199. {0x636131c7, 0x362d4135, 0xa707879b, 0xa16567fd, 0xe07cc68e, 0x05d64356,
  200. 0x6d47090b, 0x4840b56c} // f
  201. };
  202. EXPECT_TRUE(PrivKeyIsInRange(&input));
  203. }
  204. TEST_F(EpidMemberTest, PrivKeyIsInRangeRangeFails) {
  205. NativePrivKey const input = {
  206. {
  207. {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  208. 0x00, 0x00, 0x00, 0x00, 0x01}, // group id
  209. {{{{0xAED33013, 0xD3292DDB, 0x12980A82, 0x0CDC65FB, 0xEE71A49F,
  210. 0x46E5F25E, 0xFFFCF0CD, 0xFFFFFFFF}}}, //< q
  211. {{{0x82803777, 0x16249880, 0xffa64ba8, 0xae43de62, 0x0acf364f,
  212. 0x9a1b8aad, 0x91e4a81d, 0x1e522316}}}}, // A
  213. {0x1372c377, 0x00147c6b, 0x46ddb71b, 0xd09db9e4, 0x5a611086,
  214. 0x105eafd8, 0xa1e0d7df, 0x0a30ae43} // x
  215. },
  216. {0x636131c7, 0x362d4135, 0xa707879b, 0xa16567fd, 0xe07cc68e, 0x05d64356,
  217. 0x6d47090b, 0x4840b56c} // f
  218. };
  219. EXPECT_FALSE(PrivKeyIsInRange(&input));
  220. }
  221. //////////////////////////////////////////////////////////////////////////
  222. // PrivKeyIsInGroup Tests
  223. TEST_F(EpidMemberTest, PrivKeyIsInGroupPasses) {
  224. PairingState pairing_state;
  225. PairingInit(&pairing_state);
  226. NativePrivKey const input = {
  227. {
  228. {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  229. 0x00, 0x00, 0x00, 0x00, 0x01}, // group id
  230. {{{{0x196254db, 0x570890e8, 0xdaf296ec, 0x87683f4e, 0xeb4caf8a,
  231. 0xacbfdd77, 0xf468e15f, 0x46c969ee}}},
  232. {{{0x82803777, 0x16249880, 0xffa64ba8, 0xae43de62, 0x0acf364f,
  233. 0x9a1b8aad, 0x91e4a81d, 0x1e522316}}}}, // A
  234. {0x1372c377, 0x00147c6b, 0x46ddb71b, 0xd09db9e4, 0x5a611086,
  235. 0x105eafd8, 0xa1e0d7df, 0x0a30ae43} // x
  236. },
  237. {0x636131c7, 0x362d4135, 0xa707879b, 0xa16567fd, 0xe07cc68e, 0x05d64356,
  238. 0x6d47090b, 0x4840b56c} // f
  239. };
  240. NativeGroupPubKey const pubkey = {
  241. {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  242. 0x00, 0x00, 0x00, 0x01}, // group id
  243. {{{{0xb580e099, 0x434c62fd, 0x64cee3ce, 0xd06d8f9d, 0x7e27b0cb,
  244. 0x3d753d61, 0xe21b17eb, 0xb36fff81}}},
  245. {{{0x74f459ee, 0xd8693ea1, 0x82457e7f, 0xee3d6642, 0xe94dae9c,
  246. 0xfdb5b79d, 0xe08859a4, 0x3a075680}}}}, // h1
  247. {{{{0xbcdd7fe1, 0x29666163, 0xd55ba704, 0xdc99ed42, 0x5474107b,
  248. 0xd5dbca1c, 0x63c2518e, 0xd2742e9f}}},
  249. {{{0xe78e1084, 0x93a56ecc, 0xde4ceacb, 0xda3f517d, 0xe85b087b,
  250. 0x48120aa6, 0xe314ac72, 0x765dc06e}}}}, // h2
  251. {{{{{0x0728e896, 0x8dcd3688, 0x6a95cac6, 0x788753f6, 0x401ba5b6,
  252. 0x50719451, 0xe20fca1c, 0xbd195a95}}},
  253. {{{0xe2f4b3a1, 0x22d9fde0, 0x0f6c56f5, 0x2414cfd1, 0x15d775f8,
  254. 0xa6657a68, 0xb86ae7e5, 0xca78115b}}}},
  255. {{{{0x57e4f33c, 0x0a3b5896, 0x89c2399c, 0x898846dd, 0x5deef56a,
  256. 0xbc077230, 0xe8b3c725, 0x9021a7e0}}},
  257. {{{0xee1140a9, 0x837d3e31, 0x8e25c6ad, 0xba6bf0da, 0x1f3deaa2,
  258. 0x5d0a88db, 0x1bb6f705, 0x79516936}}}}}};
  259. EXPECT_TRUE(PrivKeyIsInGroup(&input, &pubkey, &pairing_state));
  260. }
  261. TEST_F(EpidMemberTest, PrivKeyIsInGroupFails) {
  262. PairingState pairing_state;
  263. PairingInit(&pairing_state);
  264. NativePrivKey const input = {
  265. {
  266. {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  267. 0x00, 0x00, 0x00, 0x00, 0x02}, // group id
  268. {{{{0x196254db, 0x570890e8, 0xdaf296ec, 0x87683f4e, 0xeb4caf8a,
  269. 0xacbfdd77, 0xf468e15f, 0x46c969ee}}},
  270. {{{0x82803777, 0x16249880, 0xffa64ba8, 0xae43de62, 0x0acf364f,
  271. 0x9a1b8aad, 0x91e4a81d, 0x1e522316}}}}, // A
  272. {0x1372c377, 0x00147c6b, 0x46ddb71b, 0xd09db9e4, 0x5a611086,
  273. 0x105eafd8, 0xa1e0d7df, 0x0a30ae43} // x
  274. },
  275. {0x636131c7, 0x362d4135, 0xa707879b, 0xa16567fd, 0xe07cc68e, 0x05d64356,
  276. 0x6d47090b, 0x4840b56c} // f
  277. };
  278. NativeGroupPubKey const pubkey = {
  279. {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  280. 0x00, 0x00, 0x00, 0x01}, // group id
  281. {{{{0xb580e099, 0x434c62fd, 0x64cee3ce, 0xd06d8f9d, 0x7e27b0cb,
  282. 0x3d753d61, 0xe21b17eb, 0xb36fff81}}},
  283. {{{0x74f459ee, 0xd8693ea1, 0x82457e7f, 0xee3d6642, 0xe94dae9c,
  284. 0xfdb5b79d, 0xe08859a4, 0x3a075680}}}}, // h1
  285. {{{{0xbcdd7fe1, 0x29666163, 0xd55ba704, 0xdc99ed42, 0x5474107b,
  286. 0xd5dbca1c, 0x63c2518e, 0xd2742e9f}}},
  287. {{{0xe78e1084, 0x93a56ecc, 0xde4ceacb, 0xda3f517d, 0xe85b087b,
  288. 0x48120aa6, 0xe314ac72, 0x765dc06e}}}}, // h2
  289. {{{{{0x0728e896, 0x8dcd3688, 0x6a95cac6, 0x788753f6, 0x401ba5b6,
  290. 0x50719451, 0xe20fca1c, 0xbd195a95}}},
  291. {{{0xe2f4b3a1, 0x22d9fde0, 0x0f6c56f5, 0x2414cfd1, 0x15d775f8,
  292. 0xa6657a68, 0xb86ae7e5, 0xca78115b}}}},
  293. {{{{0x57e4f33c, 0x0a3b5896, 0x89c2399c, 0x898846dd, 0x5deef56a,
  294. 0xbc077230, 0xe8b3c725, 0x9021a7e0}}},
  295. {{{0xee1140a9, 0x837d3e31, 0x8e25c6ad, 0xba6bf0da, 0x1f3deaa2,
  296. 0x5d0a88db, 0x1bb6f705, 0x79516936}}}}}};
  297. EXPECT_FALSE(PrivKeyIsInGroup(&input, &pubkey, &pairing_state));
  298. }
  299. } // namespace
  300. #endif // SHARED