-
Notifications
You must be signed in to change notification settings - Fork 0
/
keypair.py
27 lines (21 loc) · 16.4 KB
/
keypair.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/env python3
import logging
logging.basicConfig(level=logging.DEBUG) # needs to be here so that we can see the logging of dilithium module
import dilithium.generic
OLD_KEYPAIR = (b'\x15\x8e\x7fG\x1d\x1d\xef\xfb\x101\x98\xf2\x8a\x90\x8f-y\xa6\xa8\x01Kr\x1a\xe6\xf7\xfa\'i2\xbd\xdd\x0b>\x1b\xe0\x16M\xdf3K\xe4\xea,g\xc8\xd1\xcb\x91\xdd\xe1\xd2\xda\xa5\xbb\xbeRC=\xd6\xf9\x08#\xed\xb5\x1f\x91!\xbe\xeaK\xc2)\x83\x813\xc1\xd7Y \x00\x82\xd3\t\x89\x87\xbdy\xa2\xc1|\x9f\xeehA\xf7_\xb1\xdc\xa3\xef8\xc3\xcb\xf2:\x93\x8f\xe0\x83;\x81\x9cWS\\V\xb2\x96\x92\xc4k\xeen\xa6\x91\x9d\xb7X\xe8\x8c\x121\xcde\xfc\x93XN\xaf\xb5i\x03\xbb\x1c?\x99\x91\xa9\xd3\x13\x88~\x8a\x952\x964\xcd\xe3oD@o\xbf<CP1\xc1\xe7\xb6\x1d/J\xae"\xa1,y\xcb\x81\xbd\xcaEy\xec\xb7\xeePq8\xfc\xd4\xa2ZDaT=\xc6l\xd8bf\x10\x04\xbb?\xbaW(\x8e\xcf\xeeJ\x94\xad]`\xfa\x16\xe5\x14\x86\xcdl\xfb:\xcaxM\xeae\xc8\x96\xb6\xd3\xae\x19!\x06d \x05\x82\xb7\xber\x94B\\\x11\xef\xa2\xd1b\x0b\xa3X9\xec\x07\x06o\x82\xbb\x80?|\x92f\xc5\xd0~\xc2S\xd2\xacd\xa5rb \xb6E\xb3R\xcd^`\x7fvD\xf0\xe3ro\xc1\xb2\x19K\xfcQ\xf3hZN\x96\xa6a\xa2\x9f\x02*+X"G\xa5\xd4?\xc4\x91\x11\xc0\xcb\xcd\x16(\x86\xaf\xb6\x00;\x00\x1c\x85*95\xcf\xfb\x8d&d\x9b3\x06i"\xfea\xb7\xd6\xdb\x07\xec9m\x1f\x13\xfd\x89\x8b7\xdcx\xe7\xd0F\x82\xba6Ox\xc4b4~\xcc\xfd\xe0:S\xd3\xce\x01\x8fp.\xd5Lh\xb0\xfae\xf2\xa7\xdb\x0b\x19%b\xc6\xf0\x99\xc5\x07\x8dl\xe08o\xfb\xb12\t;\xcf\xf2pM*Z\x1e\xe1*\x08\x18\x1bN\xaf\x10\xa0H\xcd{\xc8\x97\xd9>\x89\x9d\xe5\x88Rx\xb1\xf3\xd7sgm\xb2cH\xf1\xb9\x84\x04\xc3\xad\xdbb\xc8O\xe4\xb1\xce%(\xfc}\xb7S\x04B\x96\x15\xe7\xb4\x8b?\xed\xdf\x86\xc3\x016N!\xd9Df\xe9D\x0c\xe1\xb4\xe3\xe5|~i\x88\x91\xf2[\xc0\r\x07\xaa\x9a\xb0Aw\xb0U\x8bj\xfel\x8d>\xd4\xf8\x1a\xcd}\x8b\xaeWD\xfe\xe7ek\xd7n\xd0+\nz\x87\xe7\x9dw\xa6,\xe9g\x0e@\x1e\x00\x13xl>\xe4\xb1\x16\x1b\xdfO\xbc\xe8\x91\xb7\xff\xc1B\xa3X\xb1\xb4\xcd<MRKOf\xad\xb2\xe5X\x8a\x8a\xeaS\xf5\xa3\xd7;dy\x06\x0cO\x1f\'\x06n$\xea\x9c!\x8c4Ql~\x913y\xd7\xd4;\xe0\xd6\xb6\x92\x97!\xf7x\xf3\x99\x19\xc8\x94p\xbb=\x83\x16\xd8\xd2wO\xb3\xc6\x93\x15\x9c\x82Y\xf4\xf7\x13\x8d\x14n_\x86W5\xd0|\xf6\xe5\xc4\xbbNmO\x02\xe6e]\x8b\x7fX\x1b\xb8\xf0T3\x06U#\x81\xa2\xd5u\xdc\xec\n\x9e\xdcME\xae\x10D\r\x1d\xe2U\xd75\x17\xdd\x17\x0f\xcav\xf6\x01U\x8b\xceV\xb1\xa7S\xb6K\xf4\xb4\x93\xf6\xf9\xe8\xd9\x1a\x84\xe2J(Q\x8bv\xb7\xabeJ\x86\xdc\xa5\xa1%J\x05s\x91|1\xecM\xed\xd5\xca\xc4\xfft\x90\xf3N\x93\x89\x8c\x16A\xd0\xf64q\x93\xd2\xb2\x90\xaa\x1d@=\x05\x11&\x15\xf9\xa9M\xaf&\x0b\x90\x86\xb3@\x8a\x08\x1d\xba\xb9\xc9\xb0i\xf9\xf1\x05\xa9*\x88\x0e\xf8\x86C\x93\xcdB\x95\xb3&\xaf\x17h\xfaEo\x95\xcarY/(\xdak1\xec\xcb\xef\xb7\xe7e\xba\xb1\x1f1~k\x92\xde=3\xd1\xb4q\x91($\xb2\xdc\xd5\x0b\x15l\xc5ks\x11\x17=\xbb0\x9d\xa6\x83_\xb2\xd0\xa0\xc8\xd0\xe1-\xc5I\xa4\x8a\xb5\xd3 \x98\xf1\xdf8\xdf\x1f\x9bV\xc6\xe2fO4SsL\x16\xe0\x07j\xf3\xfe\xf0\xe8\xf2\x1b\x1eA\x1e\xbd\xb3\x05\xe7c\xc3\xc2HM\xaa\xf5\xe3>\xa8\x83bX\xc1s\xa8:\xb0\x11\xb88T~R\xf4\x83C\x88 i\x02\xf1\xcf\xd1\x040\xa8fH\x1a\x9dTb\xfe\x89\xa1\xd3W\x93\xea7\xf7\x98\x1a\xf7\xe3\x1a\xe6\xdbz\xfb\xc0K\x13\tO\x9e\t=\x16\\\x98\xcf\xf1\xeccv\xe20\x81=~\xcc\xe0/\x0c\x16F\xe5\xb8\xd2\x80\xd0\xb8\x8e\xc4\x03\x99\x89\xdd\xe5\r\x82\x05\xf6\x90\x93}\tT\xb5\xeb\xcf\xe8Z\x032\xc9\xcd\x03\xdc\xdc|\xa0vL\x7f\x89\xb2\xa1\xc9\\\xe0\xa6\xa0\x14\x82J\xadG\x02c14\x0e\xa2\xfc\x06(i\x0f\xe0\x8be\xb1C\x18JF\xe0\xaa\xa7\x85\xfd\x87D\x95\xfc\xde\x87!\x1c\x92\xc90\xc8\x96$Z-\x9c\xc4\xf85T\xed\xa5\x15h9o\xb3\xa6\xaa\xc9\xb0\xe6\xbfR\xc6\x03\xa0\x98|\xaf\xcb=\x9dGI\xcbmX\xf3\x87dK\x10\x17]\xbakz\xda)\xad\xa1\xf6\x162\x832\xc8\xf2\x97`\xb8\xeb\xca\xa2\x90P\x85\x8b\xad. -l\r\xa7\xf8\xb1\x02\xc1\x06\xa33V\xa1\n"\xbc:\x90\x82\xaf\x01c\xef\xfap\xa9 \x15\xbe\x01\x07\xdd3|"\xc21f\xa6\x04\x8bP#\x8f\xd3j\x90\xcb\xce\x1eH\x1d\xf8\xe3\xea\xfb\x82[\x94\n\x01<\xcf\xc6\x9f\x90o\xd3\xf9\xc7\xc1\xd0\x1f\xc8\x7f+\xce\xfd\xcc\x82\x87\xfba\x91\xf1U\xd5x\xa7\xb1\xf3\x8c\x83I\xa2\x1e\x03\x868<\xe8\x93\n\xf9\x08\xc7\n?\xaf\xf4e\xbe\x90\x17\xce~\xbc `\xa9\xbf\xa8,\xd9\r}(\xd5H\xac,\x1ai\xaeo!\xe7\xc3$\x14Y\xa6h\x10\x03\xb2\xce\xfa\xeeJ\x80\xa6)\xa1\xf7\x8f\x80\x83YD\x84\x8c\x1d\x7f\x01-^\x94\xdc\xe7\x87\xd6\x8e?\x7f\x13\xb3S\xdf\x05\xb0\x10D\x8f\xb7\x14Z\xb7Z\xd3A\x0b\x8a\xc9\xf6J\xdf\xbe7\x99\xcb\x08g\xea\nU\x1dK\xc7o\xec0*b\xefXo,3\xc7\xacH+\xdcL\xa28\x94\xa7\xf9\x02\xa8\xben1\x18\'\x9eG\xb9H\xb5\xc2\xcez\x8b\xda\x036\xca\xc8\xca\xa3Ro\x80\xda<(\xd7U\x82\xfb\x0co\xa8\xe8@\x9bA_T\\b\x1d\xe5\xe33\xf4\xe4\xe1lw\xde\x92\x93\xd1\xe5p\xa0|\xedW\xdd\x82k\xa6]\xd8\x19G&\xc1/Z\x1a\xfb\xf6\xdb\x92\xcf|!\xc7\xa3\x9e\xe2\xa5*\x1d(\xf35A_\x10\x8d\nq\x0e\x9d\x8d\xbaB4\xcd(\x0f\xbd\xacz\xb12\xcf\x12"D\xb2\xfeF\xf0s\xc7u\xee\x93\xd5\xacE\x82\xc3\xa2\x87\x82*\x97E|OI\xcd\x18\xa1W~]R\xb8;J\xe8\xf7\x99S\x89\xc8\xc14\xae\xeb\xb6\x8d\xf6\xbcq\xd8\xef)lY\x147\xe3\x88\xab-\xc9c\xfdA\xbc\x9b\x0e\x1fsgI\x1a\x95\x9az%b\x07f\x8cI\xe0\x8b\xc7\x95\xdfB7\x91\xd1\xe3J|\x98lv\x9dX\xc8\x95X\xa9\x00ia\x1b\xbd\xe2\xa0\x18x\xed\xed\x84\xc6A\x056(\xc7\x19\xc2K\xf8v\xbe6\xe7\xfd9\x95N\xf85\xd9\xa1H\xa8\xe5N\xad\xf6\xbb\xe3I\x8foJ~\xab6A\xb4"\x05+0\x11\x9bVp\xf7S\xefk\xb0\xee\xcd\xe8\xa8\xd7\xe3\x01&(\xf7~\x03\xe3\xef3\xf68p\xa8*z\x83{\x94|\xa6\xf7\x91\xb1y\xff\x96\xa5\xcf\xcd\xa8X\x88\xfb\xc3\xa3\x03BiW\x9b\xeb\x13\xced\xd9\x11\xe5OF\x98P\x13|\xees\xf3\xce\xe6L\xf6\'\xa3\xd6Q\xeaA\x7f Q!4D\x0b\x0b\xca\xf2`\xc9-\x08xb}\x12\x83\x89\'\x8f\xa8\xb0]\xedd\xe0\x12T\xb0\xe1s\xdd\x86\x82\xe9\x89\x1e$\x98\xd7D\x9e4\x87\x19*\xd8\x15\x94W\xf3\xb0\xe3\xa7\x15\x92\xd6{\xa7\xdc\xea\xc4~6\x02\xde\xe8S\xea9\xedm\xac\xcfE]\xe9\x16\t[\xcf\x1e \xa4\x9a\xebs\x8a\xde\xb8\x9c,\x9c\xb5\x85\xb3\x03+3\x12\xf8_\xc4>\xa0\x95\xb38\xa5sfD?\xb3w{\xa1|\xbe:\xe40\xf9\xafL\xf2\x85\xc0\xab\x83W\x9c\xc1\xab_\x0e*1\x94S\x08\xaah.\x0f\x0fc1l\xfeQ\xb9\xba\xe1\xdc\xf5\xb0}\xe6:\x1e\xcf\xe0\xf1\x1d(\x85\xa3\x94\xb8=\x92\xa7\xd2"\xbb\xbd\x87\xd9\xbe\xbb\xcf\xe7m\x17\x1er\x93\xea\x1b\xad6\xb3d\x8ae\x8fe\xe3\x8d_\x87', b'\x15\x8e\x7fG\x1d\x1d\xef\xfb\x101\x98\xf2\x8a\x90\x8f-y\xa6\xa8\x01Kr\x1a\xe6\xf7\xfa\'i2\xbd\xdd\x0b7\x07\xb6\xaaS0b\xf0/\xae\xe1\xa8\x08l\xaco\xc4u!vf?\xa4z\xc2\xca\xeb\x9d\x14%\x07\xfa>\x03l\xc0\xc7\x1fr}\xf5\x0f_S\xc0\x1b\xc4\xb3\xb4\xfe\xc6\xa9\xef\xd3\xccI\x96\x16\xc1\x7f5\xd5<\x06\x15\x15SF\x04Rh3ghGu@1\x172C\x07\x83\x00@(R11QxQ7V\x00(C\'\x85$\x82\x10EEUCw@Qd\x01RX"\x88d"e\x86\x117\x05\x11\'aV\x00G\x82\x80f5\x122\x80GeVv\x84\x14G\x10BV\x88\x13\x07\x01pu\x01\x07\x85gr\x05\x06p\x12q"72\x87 e\x00BdS\x84\x17x\x01H\x15WTt\x05T\x10vu@s\x86\x06\'GpxD\x811(&\x82VW"P%a(s\x81\x04\x00q\x03\x11B\x830w#Cs\x13\x82rhW%\'Ptc\x14W\x07qVW\x85\x86h\x84qS\x040"\x18cQH1fW@EpAP4\x18a\x01C"\x84\x12Fs\x01&\x15U0\x82#dUSq\x82\x82"U\x80\x11B&4\x873g\x03t\x80\'\x00p\x864&A\x04(\x00f\x01Qr\x00\x12\x82Wec$CWxbe\x82A\x834w! @%\x10@rg1xd\x11sSC(q@04\x08r\x16\x04B \x10@u\x84S\x03\x04\x83AE\x01X\x11R\x05\x85\x06TqDx$H\x86U2\x83vg$ sTh3xV5\x07\x84rHhx\x85A\x84\x82\x87\x07W\x17Q2\x813vT\x03ph7tB\x17cWA\x02pv$# G\x82Qp\x01$r&a&\x118w1\'R55RFSW3q\x14\x12\x03wqP8E#\x07\x888@7A\x8516FrSsQ2`\x85RUb\x16V\x04pg\x13vW\x81Q#\x05f\x86X3WHu\x08\x87d\x14F$\x0166SD \x84\x13\x03\x06\x00\x06(Rc\x11e\x86\x16e3sPW\x08R(`sCb\x88b\x01W@h5\x071Q\x824w\x04\x13\x82 p\x00\x80\x11fx5XarXQ"TSA$%%eFQ``\x01\x00FrvR%`\x86\x82q#H\x11$8\x02s"\x14\x88q\x13Be\'v$Fe\x81%htR\x15\x05\x86&u\x10frh\x17\x18&\x87T\x86g8\x05A\x17\x16\x00\x87\x12WBt5@3\x05`\x00P\x05`\x11\x03W\x87w\x04T\x08\x82\x80E\x87G"q\x13\x03\x87\x18\x08!x1\x10\x015XB\x07Uuq\x11Cs\x01480\x84`8R\x07H\x03w"g"w\x055c\x88EFx8%\x88T\'5q\x13r\'\x10p\x15\x02Bv5"DTwt0XTp1w3\x14XxF\x01\x11&\x07\x00\x842(W2\x12vbA\x10`\x18PQ G\x88\x10GTq%\x10E\x83wT3\x83SbE\x03$f\x83\x01(x Q38rf\x84\x13\x05$CfgSD$\x04ha5\x13e\x87\x06W\x80\x1728E&ah7F\x05\x17a\x17%\x152sSA218h4\x10\x174\x07S\x02!te\x17e\x82x2XA\x80$\x00c"\x17\x11\x16cE\x82vW5\x80(\x10$!x31(CQ\x06R\x88t5HfucCTs\x06Eg"\x85P\x16\x86\x808\x075T\x83t\x01!\x81Db"\x00gdC\x152r 46u\x84F\x15X!Sf\x85Q\x81#$\x81H3EB\x81@\x18w\x18#w!er\x16B1\x860\x86D8\x120\x87\x15\x03V82\x86d\x00\x18\x08\x14\x17f@\x87EvGV %\x840f\x88\x02bx5b3\x184%w!TCU5F332Ts1\x151X\x15\x88v\'\x80\x06x\x10ebaV\x064\x06A"QX\x82B\x84`%\'$\x17vB\x83c\x84%5qeD\x16x\x07pH\x175$\x01bbu#\x01a"t\x07`p\x08W\x884P48w\x88dBue1EXd\x13A`t\x03\x07G(v\x81F`H\x15%A\x03#!\x17\x13e\x06r2!p\x18\x8485AdC(t`\x16(Bc\x04uG\x84\x18QU\x02\x10&0\x817pD\x14aHP#`W\x04e70T8\x80\x18W&AP\x07\x03 U`4\x16\x87\x88\x80VV\x08aeD\x80dU\x84\x82\x81c4\x88&\x80$$cx\x85\x825\x10$\x80%\x17 2rU\x86S\x08@UT\x11\'x@7\x8025\'\x187h\x84bv@\x16\x16Vp"E\x86\x88hh\x04\x13fS\x181\x12rWeB\x16&\x18BP\x17p0c\x80\x11\x02p\x81 \x06G&0\x10\x87C0erp \x04\x00H\x13#PUXa@Wdt\x80U\x86\x18\x87\x011\x013h3`!tW2\x02b\x81\'Sc\x16Ge\x81%t\x10u`dE\x00\x06\x18FH\x15\x12UDQ\x07c\x81\x18\x05"\x88qRvU%u7\x84\x017AW@\x86 B\x02\'\x821pXSQ\x06\x86c\'b\x81r\x16Gx\x05R$EPbv\x15\x16eR\x87C\x10\'DCHef\x83Qt\x81\x15\x82\x855 R\x830A357u\x810\x08\x82\x88\x01 \x14pS&p\x85S(3P"@v\x82#\x83xQ%\x15R%\x86`\x88\x88t\x13 Ba\x05$a(\x07`f$\x832$d$#\x83H3\x80\x05wW\x83e\x16H\x81f"T\x832t\x02\x81F6\t\xaf\xe5\xfdX\xcf<E\xd8\xd80 %-B\x1d\xe2\x8f\x84\x85\xc0\x00\x82hN\xfb\xb5r\x925\x84yv\xd7;Q\xad\x01\xbb]t\xa7\xb5\xbe\x9a\\]\'r\x06\xc3C\xd8IX\xc9\x8f\xb9\xde\xffi\xa0\xb1\xa7\xd4\xa8p\xad\xdf#\xcaq\xcfr\xaaC)\x00\xbd;Na\xc9`L\x9e\x0f\x9c\xb3\x16\xd6\xf1\xd8\xed\xd8\xc6\xdd$\x04\xf4\xb7+\x8d\xc3\xddpub\xb6\xce\xcc\xe18\xe5_\xffj\xf2weD\xbe&I\xe0O_\x1e\x83=\xc4\x1f\xb2\'\xa5g)\x0f\xfe\x87W4\xf6\xb3\xeco]\x9dk\xbet\x85\xd6:\x9e{/\xf2\xa5^(Hnt\x87\xab. \xf3\x12\x1bCB}\xbcF/@\x9a\xf2\x10\x8daD\x1b\xc1\'/\xcc^\x8d(Tfz\x8cy\x9c\xcd\xbb\x8aAK\xfc\x86\x0fa\xc7\xcc\xcc\xd6\xb2\xb8j\xf3\xb6Q\x8c\x03b\xba\xd6Q\xb3\xc1\xca\xa90\xc3\x0c\xbfRr\xa0\xd1\xc8<\xfc\x8c\x0f\xfe\xca>\x1abx\xf7\xe1\xf6\xd9\xcc\xfdO>\xcd\x9d\xbc\x82\xbbZg\xb3\x1e\xed\x98\xb4\x0c\xd3\xa8;\xd6D\xfc[f\x014\xbf|\x8bcq\x91\xa2\x01p4\xeaN3O\xdc\x02\xd7\x954HD\x8a\xd3\x0e]m\xe5H (W\x9b@\x05<D"\xf7\x17]\xe1\xbe\xa4\x82\x86\x07\xe1\xbdegb\xfc\x85\xe0\xc6\rT\xb9\xe8\xb7!\x96\xbc1\xfd\xf8\xa25r}1b\xc7\xdd0#\x117\xc3[}+V\xa90S\xe1!"\xdcI\x99-\x94\xb3\xdd\x17x:M>X\xb49\xcd\x87\xf0;\xddF\xaau\xed\x19U\xb9\xb7\x80JC\x89o\x05\xd9\x19>m\xfc1\xb1\x03\xc5\xd1O[F\xc7\xe9\xca\xce_b\x17%f\x81\xbd\xb2\x8aZ^SxYWeRX)/\xa0\xb9\xdd\xd5\xa7\x1c=k\xfdr\x99\x1b\x90\xc1q,\xb03\xaf#\xfc\x7f\x18k\x96\xa7\t\xd9J\\\xc3\x8b\x95\n\x93\xa0D^P\xde\xa6\x85\xce\xe9\xc9a\xabB\x90\xf0\x1dN\x9c\xb8\xae$G&\x92\x95YX\xd2\xe1\x95\xaeyt\xa0\xa2\xfagS\xcbq\xe0\xaf*J\xb5\x1d\xef\xe3\xb0\xaa\x03Y|ncS40\xa8\xd9\xf73\xf1!\xa4\x91\xab\xe3I^>#\x8bU\xaa\xe2fq!C\x19\xd1l)o%\xb9p\xb3\xd4\xc1lK%n\xde)|\xc1Y\r\xc3\x87\x83\xe3\xe8\x19\x06\xed\x81\x0f\xa1\x17\tz\x1c`\x88\xcf\xdd\xed\x8dS\xb7\xcc`%\xe3\xcck\xc3\xa8l9\xbb\xa3\xcd\x89\x92\xe3\xdao\xaa^)\xe0D\x15fZ\xcb\x0e\xc1{\x88\xc3\x1b\x1e\xa2\t\x80\xae\xe7\xc6G\xb0\x89\xd5ir\xb2\xb5\xb6\xe3\x85`\xce\x03\xaf\xaa\x03\xb427\x838\x87?u\xbd\x03\xfb\x91\xc5\x82\xfc\x92^>\xf9\xfc\xac\xb6\x80\x00\x8f\x9b\x1d\xe0\xc4\xbe\xfe?\xd4\x07\x1c\x15\xdf\x04,9\x0e\x93\x8f\xed\xcf.j>ts\xe7\x94d\xd8VT+h\xa2\xe6\x00L\x05-\x00\xeb1\x03Ao\x9c\xe8\x1d\x11\x86]G\x87O\xbd.\xae\xba/\x17\xc4\\vw\xbe\x03\x02\x8d\x1a\xa7\x7f\xc5\x9dGi\xea\xfd\xc7\xe7\xe8\x97,\xbf\xce\xf3l\xb8\x84\xd73\xf9P_b\xce\xb8\x13\x14D\x07\xde\xf2g+\xf7\x0f\x83a\xa5\xa1\x8d\xfb\xe6F\xee\x8e\xe5\'\xc7\xa4L\x16\x00\x0eZ\x16\xf4\xc0\xd5\xac"\x1a\xfe\xb7T\xb0&4\xe4J3\x7fY\xf9\x1aw \xbex\xcf\xb7\xb3\xfe[\x88\xc4\\U!\xf2)\n\x80f\x91\r\xf4\xbcI\x83rc\xa3\xe8\x98\xdb\xfea\xa4F\xa4\\\xc0Q\xde\xbe\xe6L\xcb\x15\x06\x86\xc5\x8c\x81\xd0\xbaL\xdd\x10V\x02kL\x93\x1e\x9d&\xb7\x9d\xc6\x92\xa8\xb1`\xa8m\'\x00\xcb\xe71\xeba\xcdq\xf3TSp|\xb88\x11\x16\x99\x95\x95\r\xeci\xdbd>\\\\\x98\xbe\x92\xae\xf5\rs\xbb\xb7 $\x02\xa3\x13\xfd\xcfP\xdb\x85\xe8\xe9\x06\x83\xd8\x89\x17(\xf36\x8c\xfd\xa5\x8b\xf6T\x9f\x15\xc2-\xca\x8d\xd4\xc0/b/\xb1\x999\x05\xf0\x11\xc0\xcc9\xa3\xb8\xbb\xb6\xd9\xfa\xd3\xa2\x1c\x19\xbe2U\xa0\xfd\x15\xd8IV\xe6\xce \xe6\x0e7Z(O\x13\xa3\xf7\xbaaq\x05\x92\x05VK\xf25\x9f\x89\xab\xf3\xabr\xa4,\xe3\xdc\xb8\xdf\x85\x8e\x10\x01\xb7\x19Q\xf2\xb7\xb9V~G3#^\xb4\xed<\xf9\xe6G\xf8\x88\xdd=\xb5d\x8f\xd3\x8c\x97\x83~f\xbdt\x99_\xfe\r\r\x97\xa0\x1f\x81\x05\xca\xf5\xc6\x7f\xaci\x18\x05\xa7\xb9V\xa7W\xa0\x05\x90\xe8:\x86[6F\xe9\x0cg\xe5\xa8\xb0\xb1:\xc9\x82%;\xcf\x9f\xe4LL\x1f\x9f\xf2>2\x91\xca\x1dfbL\x02\x17\x1a\xd9E\x9fD\xbf\x86.\xea*uA\xd9\xfc\xc2\xf4\x17W\x0cV\xb7\xa7%\x8e\xe0\x8d?*\xa1\x1a\x0c\x86\x92\xb17\x98\xa6\xce\n\xda\xed|\x0c\xbd-\xd6\x87\xf9\xdb\xa8z+yDu.\xb9\xc4q\xd4\xa7\x0b\n \xe69b\xfe\x1c\xe5<\xa9w\xf73#\x9cXQc\xcdlWG\xe3&\xb6\x0c\xf4\xeb}\x8fP\x94:\xc4tc\xbbZ\xc8\xae\xf9H(h\xa6\xba\xda\xc4 \x97\x99-hk\x02a\x17\xf5\xf6\x04\xf6\x94\xfc{\xf3\xe84\xa1&C_\xf6\x18\xea\xebi9E\x0c~\xe2\x9f\xfa\x95\x82\x85]`\xe3\xd7\xfb\x07\xfdk\xa3\x96\x14\xae\xa7\x97\xc3\x84\xfe\x8d\xe1?\x80\x13J\x0b\xe1]{\xb4+\x94\xfdu\x18\x08\xfae#U\x0b\xbd\xa5S\xd8o%\xca\x1d\x97?\xd3\xb8\xefQD\x9b\xfb\xf0-L\xc9\xc7\x17F\x85\xf8\x924\\\xebH\x9bL\x11\x1eR\xac\xbf\xfb\x87\xba\xdd\xc8^0\'\xc6\xd0\xfb:\xc2\x1e&\x91\xb9\xadr/Q\xcf\xd7\x05w\xa7\x80\xb7Kft%\xfc]\x98\xe5o,\xbaw\xc2O\xb2\xdcEQb\x0b\xc9Z*\xe2\x11I\xe4\xf6\x0eX\xb6\xb3\x85\x18X\xe4CS\x88?\x07\xe4\x8d\x8d\x80\xd7]\xdc\xb9\xed\x05\x91H\xad\xac\x7fX^\xbbG`y\x93\xd6/dFk\xfc\x04w)MY\x94\xf4\x83\x98O\tX\xb0\xac\xd7\x0b\xb6\x00\xf5\xdeK*\x96\xb4FLl\xb01G\xd0\xf1\x97\xf5]\xa9.c:\xb4\xa7E\xa0\xed\xf2{\xaf\xf2\x0e\x9f\xd1H\x94\xa8J\x94U\x14\xfd"\x0cDC6\\3\xb3\x16\xac\xc9\x1a\xf6\xd6\x9b\xd7]\xff\x03\xf1.\xb7m\xb9\x8ak\x99\x14\xfb\xef\x0c\x89\x1b\x9d\xa5\xc5\x18\x17aD\x86D/\x1a\x19M\xa0\xd6\xa8\xf0fE\x01\x1c\x03\xa3e\x1e\x7f\xdb\xfc\xb1\xb5\rg\x8a\x96W-I\xfa\x7f\x12\xb8\xf02\x1cl\n\xbam8\xff\x1eH\xe0W\xbbl\xcb\xd8X\x9b\x05\xd9\x9e\x07\xfa\xf2M\x7fj\x163\xac\xbf\x16\xc0{\xe8c\x99\xc9\x03\xc2s\xf3\xf2\x9f\xbe\\\x88\x9c4\x11\xba\xd4l\xa1\xdeeAo\xdfT\\\xa2\xcaR\xa9\xb9\x0e\xc7B\xd3B\xc3\x14t\x18\x1f\xf7T\x9b\xc7h\x1c\x92\x91\x85\x97\x95|P\x83\x94\x00\xc9jo7%\x9f=CM|u\x96\xfa\x9a\x81;$Hn\x11s\x96 5#\xb5\xb0gw\xf6v\x84\xf1\xd23\x9d\xd5\x1f\xdf\xf0\xc9\xe5\xf8G4e\xb8\x91\xb7>w\xe34\xb5N\x0b\x13\xc7ZA\xba"\xeb\x06\xabN\xa3g@\x1e=\x18v\xd1>\xbb\'\xc3\xaeh]\x08qg\xab\x1d\xb0)?D\x99\xe2\xb0&\'\x11H]$\x9e\x93\xc2\xce\x0c\xce\x1e?\xba/ Nx\x8d\xfa\xe0\x06\x0f]g\xafZr5N[\x0f\n!S\x13\xd9\xed5hAK\xb8w^\x97K=\x04\xc8\xed_\xe9^\xa2J\xa4@\xff\xe3JJ\\\x1cE\x08\xf7\xbe\xf5\xee \x19N\xcc\xc8\x1c\x9b\x14\x13\x9c7\xae\x84~\xednO\x99\xe1`~\x06z[[\xc2\xadn~\xd3t\xf0\xd6#a\r\xc9\x9e\x0e\x80\xfd@I]\x11n\xc3^\x9dh\xa9\xd1\x0f\xd7\xc8"\x0c\x8ab\xa0\x80\x1a\x88 \x85\xde\xbb\xdb\xad\x81\xf9\xd2\x7f\x9d"Y\xd1\xa5m\x00\xe1\xbb\xf6}\xe0C\xf8\xf7\r\xbbK\x0eW\x93Y\xb8K#V\xbakM\x86ho\xbbQ7csJ\xb3Z\xb7\xf1\xf76\t\xec\xc3g}\xab\xf9\x05_\xef\x00\x10\xfd\xc1\xe9\xc7\x9a\x102g\x18\xa2\xbc\x86-5\xb4M\xc3~T\xa3a\x17%nr\xf8\x8b\xf4+\xac\xb4"Yo\xbfH\x1b\x9a\x0e\x08!k\'p\x1c^\x1b\xc0\x9d\xc1\xe4\xb3{v\x97\x0c\x85\xe2\x94si\xb5\x85\x98`x\x8c\xf4\xea\x92Q\xfeK\xdc\x14\xaaZ2\xd7\xd4\x99\xfe>\x9a#X\x97\x152gv\xed\xda\xfa\xf7t\xea\xf6\x1cn,\x0b\x1e\xf7\x97N\xbb\xb9\xc5s\x06\xb1\xa1\xa3\xea\x8a9\xf2\x8cq\x17\xbf\x04\xd3\x96\xe7X\x14\xd4I\xb7\xfa\xaa\xa9r\xcb\xf5\x93\xaa>\xb6\xbe..\nl\xe2wR\x9c]\xcd\xb5\x11\x13\xe6iuA\x917\t\xe7M\xe1\xb5\xdao\xba\xbdJ\xe6\xfb\n\x04\x13)\xa8\xbeiv\xb9c\x11\xe4\x94\xdb~s\x7f\xec{V\x16j;\xb8\x0f\xd7\xe9 "\xc5\xe7%\x14\x1b0\x11\xd1\x1dy\xd0\xba\xb2C$\xc75\xed\xecV\xa9W\x1d\xdd\xca\xd70sr\t\xc6i\x9b\xd6\x1e\xc1q\xa0\x05\xc7\xadc\x0c$K\xd5\xae\xd9\xbd\x15\xa1\xdc\x1f\xd3\x8a|\xcb!\x87\x8eb\xc1\xf4\xd2b\x17\x8c\xa3\x19\x1e\x9e\x15*]6v\xb0\x03\xcb\xe7\xd3\xc1\xf7\nI\xf2\xc7\xdd\x8eP\xda\r\xf6<\x95\xb5\xa6\xd3\x01\t4\xc9]\xd6\x0c\xed\xcah\xf8\xcbv\x1c\xa5\xc9\xde\xf8-\x1d\n\xc8 \x11\xa7 \x9f\xb8\xf4\x00\x82\xeemG\xd1\xc2\x06\x01u\xf4o<\xee\xea7\xd6\xee>\x964\xba\x996l\xdb\xf7\xca\xe9\xf0\xab\'R\x92\xbb\xad\x1eJ{\xc1\x987\xcd\xfd;\xaccJ\x04\x1cw\xa01\xb8K|\x04\xfcV\xd6\x7f\xe0\x9f\xf2\xa8\x9c\xd2\x16\xdf0K\xb9\x87\xfez\x9c\xc7\x19\xb1\x17\xda8\xf5\xb1y\xacrf8ai\xcf\xab\x7f\xa3\x11\xd1\x9b`\xb7c\xdb\tH(X\xa4\xd4}\xd9\xac\xe4\r\xe2\xf4\xf8\xf4\x88\xfe\x1d:\xc5\xa5\x0bi\xa8~\xb7\xc8H\xf1;\x05\x89R\xc5\x83p1\xc8\x93\xdb\xa6\xfcn\xfdM\x85\xcat\xd4\xaf\xdf\x9b\x0f\xc7\xce\\\rD\xcd\x8f\xac\x88\xd0\xcb-\xc7\xc5\x01\'\x1a\x05\xcb\xcd\x16\xd0C7\t]\x08\xccI1(k!\xa9\xc9\xd0\xbb]\x99')
def main() -> None:
dilithium.generic.pseudorandombytes_seed(b'attack-shuffling-countermeasure-keypair\x00')
keypair = dilithium.generic.keypair()
assert keypair == OLD_KEYPAIR
dilithium.generic.pseudorandombytes_seed(b'attack-shuffling-countermeasure-keypair\x00')
new_keypair = dilithium.generic.keypair()
assert keypair == new_keypair
dilithium.generic.pseudorandombytes_seed(b'')
first_random = dilithium.generic.keypair()
assert first_random != keypair
dilithium.generic.pseudorandombytes_seed(b'')
second_random = dilithium.generic.keypair()
assert first_random != second_random
print(keypair)
if __name__ == '__main__':
main()