test_hmac_prng.c 258 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434
  1. /* test_hmac_prng.c - TinyCrypt implementation of some HMAC-PRNG tests */
  2. /*
  3. * Copyright (C) 2017 by Intel Corporation, All Rights Reserved.
  4. *
  5. * Redistribution and use in source and binary forms, with or without
  6. * modification, are permitted provided that the following conditions are met:
  7. *
  8. * - Redistributions of source code must retain the above copyright notice,
  9. * this list of conditions and the following disclaimer.
  10. *
  11. * - Redistributions in binary form must reproduce the above copyright
  12. * notice, this list of conditions and the following disclaimer in the
  13. * documentation and/or other materials provided with the distribution.
  14. *
  15. * - Neither the name of Intel Corporation nor the names of its contributors
  16. * may be used to endorse or promote products derived from this software
  17. * without specific prior written permission.
  18. *
  19. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  20. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  21. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  22. * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  23. * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  24. * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  25. * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  26. * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  27. * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  28. * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  29. * POSSIBILITY OF SUCH DAMAGE.
  30. */
  31. /*
  32. DESCRIPTION
  33. This module tests the following PRNG routines:
  34. Scenarios tested include:
  35. - HMAC-PRNG init
  36. - HMAC-PRNG reseed
  37. - HMAC-PRNG generate)
  38. */
  39. #include <tinycrypt/hmac_prng.h>
  40. #include <tinycrypt/constants.h>
  41. #include <test_utils.h>
  42. #include <stdio.h>
  43. struct hmac_prng_test_vector {
  44. uint8_t entropyinputlen;
  45. uint8_t noncelen;
  46. uint8_t personalizationstringlen;
  47. uint8_t additionalinputlen;
  48. uint8_t returnedbitslen;
  49. uint8_t entropyinput[32];
  50. uint8_t nonce[16];
  51. uint8_t personalizationstring[32];
  52. uint8_t entropyinputreseed[32];
  53. uint8_t additionalinputreseed[32];
  54. uint8_t returnedbits[128];
  55. };
  56. unsigned int do_hmac_prng_pr_false_test(unsigned int testnum, const struct
  57. hmac_prng_test_vector *vec)
  58. {
  59. struct tc_hmac_prng_struct h;
  60. uint8_t random[128];
  61. uint32_t seed_material_size;
  62. uint8_t seed_material[32 + 16 + 32]; /*entropyinput || nonce || personalizationstring */
  63. unsigned int result = TC_PASS;
  64. uint8_t *p = seed_material;
  65. memset(&h, 0x0, sizeof(h));
  66. if (vec->entropyinputlen > 0) {
  67. memcpy(p, vec->entropyinput, vec->entropyinputlen);
  68. p += vec->entropyinputlen;
  69. }
  70. if (vec->noncelen > 0) {
  71. memcpy(p, vec->nonce, vec->noncelen);
  72. p += vec->noncelen;
  73. }
  74. if (vec->personalizationstringlen > 0) {
  75. memcpy(p, vec->personalizationstring, vec->personalizationstringlen);
  76. }
  77. seed_material_size = vec->entropyinputlen + vec->noncelen + vec->personalizationstringlen;
  78. (void)tc_hmac_prng_init(&h, seed_material, seed_material_size);
  79. (void)tc_hmac_prng_reseed(&h, vec->entropyinputreseed, vec->entropyinputlen, 0, 0);
  80. (void)tc_hmac_prng_generate(random, vec->returnedbitslen, &h);
  81. (void)tc_hmac_prng_generate(random, vec->returnedbitslen, &h);
  82. result = check_result(testnum, vec->returnedbits, vec->returnedbitslen, random, vec->returnedbitslen);
  83. return result;
  84. }
  85. unsigned int test_1(void)
  86. {
  87. unsigned int result = TC_PASS;
  88. const struct hmac_prng_test_vector vec = {
  89. 32,
  90. 16,
  91. 0,
  92. 0,
  93. 128,
  94. {
  95. 0x06, 0x03, 0x2c, 0xd5, 0xee, 0xd3, 0x3f, 0x39, 0x26, 0x5f, 0x49, 0xec,
  96. 0xb1, 0x42, 0xc5, 0x11, 0xda, 0x9a, 0xff, 0x2a, 0xf7, 0x12, 0x03, 0xbf,
  97. 0xfa, 0xf3, 0x4a, 0x9c, 0xa5, 0xbd, 0x9c, 0x0d,
  98. },
  99. {
  100. 0x0e, 0x66, 0xf7, 0x1e, 0xdc, 0x43, 0xe4, 0x2a, 0x45, 0xad, 0x3c, 0x6f,
  101. 0xc6, 0xcd, 0xc4, 0xdf,
  102. },
  103. {
  104. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  105. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  106. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  107. },
  108. {
  109. 0x01, 0x92, 0x0a, 0x4e, 0x66, 0x9e, 0xd3, 0xa8, 0x5a, 0xe8, 0xa3, 0x3b,
  110. 0x35, 0xa7, 0x4a, 0xd7, 0xfb, 0x2a, 0x6b, 0xb4, 0xcf, 0x39, 0x5c, 0xe0,
  111. 0x03, 0x34, 0xa9, 0xc9, 0xa5, 0xa5, 0xd5, 0x52,
  112. },
  113. {
  114. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  115. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  116. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  117. },
  118. {
  119. 0x76, 0xfc, 0x79, 0xfe, 0x9b, 0x50, 0xbe, 0xcc, 0xc9, 0x91, 0xa1, 0x1b,
  120. 0x56, 0x35, 0x78, 0x3a, 0x83, 0x53, 0x6a, 0xdd, 0x03, 0xc1, 0x57, 0xfb,
  121. 0x30, 0x64, 0x5e, 0x61, 0x1c, 0x28, 0x98, 0xbb, 0x2b, 0x1b, 0xc2, 0x15,
  122. 0x00, 0x02, 0x09, 0x20, 0x8c, 0xd5, 0x06, 0xcb, 0x28, 0xda, 0x2a, 0x51,
  123. 0xbd, 0xb0, 0x38, 0x26, 0xaa, 0xf2, 0xbd, 0x23, 0x35, 0xd5, 0x76, 0xd5,
  124. 0x19, 0x16, 0x08, 0x42, 0xe7, 0x15, 0x8a, 0xd0, 0x94, 0x9d, 0x1a, 0x9e,
  125. 0xc3, 0xe6, 0x6e, 0xa1, 0xb1, 0xa0, 0x64, 0xb0, 0x05, 0xde, 0x91, 0x4e,
  126. 0xac, 0x2e, 0x9d, 0x4f, 0x2d, 0x72, 0xa8, 0x61, 0x6a, 0x80, 0x22, 0x54,
  127. 0x22, 0x91, 0x82, 0x50, 0xff, 0x66, 0xa4, 0x1b, 0xd2, 0xf8, 0x64, 0xa6,
  128. 0xa3, 0x8c, 0xc5, 0xb6, 0x49, 0x9d, 0xc4, 0x3f, 0x7f, 0x2b, 0xd0, 0x9e,
  129. 0x1e, 0x0f, 0x8f, 0x58, 0x85, 0x93, 0x51, 0x24,
  130. }
  131. };
  132. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  133. result = do_hmac_prng_pr_false_test(1, &vec);
  134. TC_END_RESULT(result);
  135. return result;
  136. }
  137. unsigned int test_2(void)
  138. {
  139. unsigned int result = TC_PASS;
  140. const struct hmac_prng_test_vector vec = {
  141. 32,
  142. 16,
  143. 0,
  144. 0,
  145. 128,
  146. {
  147. 0xaa, 0xdc, 0xf3, 0x37, 0x78, 0x8b, 0xb8, 0xac, 0x01, 0x97, 0x66, 0x40,
  148. 0x72, 0x6b, 0xc5, 0x16, 0x35, 0xd4, 0x17, 0x77, 0x7f, 0xe6, 0x93, 0x9e,
  149. 0xde, 0xd9, 0xcc, 0xc8, 0xa3, 0x78, 0xc7, 0x6a,
  150. },
  151. {
  152. 0x9c, 0xcc, 0x9d, 0x80, 0xc8, 0x9a, 0xc5, 0x5a, 0x8c, 0xfe, 0x0f, 0x99,
  153. 0x94, 0x2f, 0x5a, 0x4d,
  154. },
  155. {
  156. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  157. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  158. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  159. },
  160. {
  161. 0x03, 0xa5, 0x77, 0x92, 0x54, 0x7e, 0x0c, 0x98, 0xea, 0x17, 0x76, 0xe4,
  162. 0xba, 0x80, 0xc0, 0x07, 0x34, 0x62, 0x96, 0xa5, 0x6a, 0x27, 0x0a, 0x35,
  163. 0xfd, 0x9e, 0xa2, 0x84, 0x5c, 0x7e, 0x81, 0xe2,
  164. },
  165. {
  166. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  167. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  168. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  169. },
  170. {
  171. 0x17, 0xd0, 0x9f, 0x40, 0xa4, 0x37, 0x71, 0xf4, 0xa2, 0xf0, 0xdb, 0x32,
  172. 0x7d, 0xf6, 0x37, 0xde, 0xa9, 0x72, 0xbf, 0xff, 0x30, 0xc9, 0x8e, 0xbc,
  173. 0x88, 0x42, 0xdc, 0x7a, 0x9e, 0x3d, 0x68, 0x1c, 0x61, 0x90, 0x2f, 0x71,
  174. 0xbf, 0xfa, 0xf5, 0x09, 0x36, 0x07, 0xfb, 0xfb, 0xa9, 0x67, 0x4a, 0x70,
  175. 0xd0, 0x48, 0xe5, 0x62, 0xee, 0x88, 0xf0, 0x27, 0xf6, 0x30, 0xa7, 0x85,
  176. 0x22, 0xec, 0x6f, 0x70, 0x6b, 0xb4, 0x4a, 0xe1, 0x30, 0xe0, 0x5c, 0x8d,
  177. 0x7e, 0xac, 0x66, 0x8b, 0xf6, 0x98, 0x0d, 0x99, 0xb4, 0xc0, 0x24, 0x29,
  178. 0x46, 0x45, 0x23, 0x99, 0xcb, 0x03, 0x2c, 0xc6, 0xf9, 0xfd, 0x96, 0x28,
  179. 0x47, 0x09, 0xbd, 0x2f, 0xa5, 0x65, 0xb9, 0xeb, 0x9f, 0x20, 0x04, 0xbe,
  180. 0x6c, 0x9e, 0xa9, 0xff, 0x91, 0x28, 0xc3, 0xf9, 0x3b, 0x60, 0xdc, 0x30,
  181. 0xc5, 0xfc, 0x85, 0x87, 0xa1, 0x0d, 0xe6, 0x8c,
  182. }
  183. };
  184. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  185. result = do_hmac_prng_pr_false_test(2, &vec);
  186. TC_END_RESULT(result);
  187. return result;
  188. }
  189. unsigned int test_3(void)
  190. {
  191. unsigned int result = TC_PASS;
  192. const struct hmac_prng_test_vector vec = {
  193. 32,
  194. 16,
  195. 0,
  196. 0,
  197. 128,
  198. {
  199. 0x62, 0xcd, 0xa4, 0x41, 0xdd, 0x80, 0x2c, 0x76, 0x52, 0xc0, 0x0b, 0x99,
  200. 0xca, 0xc3, 0x65, 0x2a, 0x64, 0xfc, 0x75, 0x38, 0x8d, 0xc9, 0xad, 0xcf,
  201. 0x76, 0x35, 0x30, 0xac, 0x31, 0xdf, 0x92, 0x14,
  202. },
  203. {
  204. 0x5f, 0xdc, 0x89, 0x7a, 0x0c, 0x1c, 0x48, 0x22, 0x04, 0xef, 0x07, 0xe0,
  205. 0x80, 0x5c, 0x01, 0x4b,
  206. },
  207. {
  208. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  209. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  210. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  211. },
  212. {
  213. 0xbd, 0x9b, 0xbf, 0x71, 0x74, 0x67, 0xbf, 0x4b, 0x5d, 0xb2, 0xaa, 0x34,
  214. 0x4d, 0xd0, 0xd9, 0x09, 0x97, 0xc8, 0x20, 0x1b, 0x22, 0x65, 0xf4, 0x45,
  215. 0x12, 0x70, 0x12, 0x8f, 0x5a, 0xc0, 0x5a, 0x1a,
  216. },
  217. {
  218. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  219. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  220. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  221. },
  222. {
  223. 0x7e, 0x41, 0xf9, 0x64, 0x7a, 0x5e, 0x67, 0x50, 0xeb, 0x8a, 0xcf, 0x13,
  224. 0xa0, 0x2f, 0x23, 0xf3, 0xbe, 0x77, 0x61, 0x1e, 0x51, 0x99, 0x2c, 0xed,
  225. 0xb6, 0x60, 0x2c, 0x31, 0x45, 0x31, 0xaf, 0xf2, 0xa6, 0xe4, 0xc5, 0x57,
  226. 0xda, 0x07, 0x77, 0xd4, 0xe8, 0x5f, 0xae, 0xfc, 0xb1, 0x43, 0xf1, 0xa9,
  227. 0x2e, 0x0d, 0xba, 0xc8, 0xde, 0x8b, 0x88, 0x5c, 0xed, 0x62, 0xa1, 0x24,
  228. 0xf0, 0xb1, 0x06, 0x20, 0xf1, 0x40, 0x9a, 0xe8, 0x7e, 0x22, 0x89, 0x94,
  229. 0xb8, 0x30, 0xec, 0xa6, 0x38, 0xcc, 0xdc, 0xee, 0xdd, 0x3f, 0xcd, 0x07,
  230. 0xd0, 0x24, 0xb6, 0x46, 0x70, 0x4f, 0x44, 0xd5, 0xd9, 0xc4, 0xc3, 0xa7,
  231. 0xb7, 0x05, 0xf3, 0x71, 0x04, 0xb4, 0x5b, 0x9c, 0xfc, 0x2d, 0x93, 0x3a,
  232. 0xe4, 0x3c, 0x12, 0xf5, 0x3e, 0x3e, 0x6f, 0x79, 0x8c, 0x51, 0xbe, 0x5f,
  233. 0x64, 0x01, 0x15, 0xd4, 0x5c, 0xf9, 0x19, 0xa4,
  234. }
  235. };
  236. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  237. result = do_hmac_prng_pr_false_test(3, &vec);
  238. TC_END_RESULT(result);
  239. return result;
  240. }
  241. unsigned int test_4(void)
  242. {
  243. unsigned int result = TC_PASS;
  244. const struct hmac_prng_test_vector vec = {
  245. 32,
  246. 16,
  247. 0,
  248. 0,
  249. 128,
  250. {
  251. 0x6b, 0xdc, 0x6c, 0xa8, 0xee, 0xf0, 0xe3, 0x53, 0x3a, 0xbd, 0x02, 0x58,
  252. 0x0e, 0xbb, 0xc8, 0xa9, 0x2f, 0x38, 0x2c, 0x5b, 0x1c, 0x8e, 0x3e, 0xaa,
  253. 0x12, 0x56, 0x6e, 0xcf, 0xb9, 0x03, 0x89, 0xa3,
  254. },
  255. {
  256. 0x8f, 0x84, 0x81, 0xcc, 0x77, 0x35, 0x82, 0x74, 0x77, 0xe0, 0xe4, 0xac,
  257. 0xb7, 0xf4, 0xa0, 0xfa,
  258. },
  259. {
  260. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  261. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  262. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  263. },
  264. {
  265. 0x72, 0xec, 0xa6, 0xf1, 0x56, 0x07, 0x20, 0xe6, 0xbd, 0x1f, 0xf0, 0x15,
  266. 0x2c, 0x12, 0xee, 0xff, 0x1f, 0x95, 0x94, 0x62, 0xfd, 0x62, 0xc7, 0x2b,
  267. 0x7d, 0xde, 0x96, 0xab, 0xcb, 0x7f, 0x79, 0xfb,
  268. },
  269. {
  270. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  271. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  272. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  273. },
  274. {
  275. 0xd5, 0xa2, 0xe2, 0xf2, 0x54, 0xb5, 0xae, 0x65, 0x59, 0x0d, 0x4f, 0xd1,
  276. 0xff, 0x5c, 0x75, 0x8e, 0x42, 0x5b, 0xe4, 0xba, 0xcd, 0xee, 0xde, 0x79,
  277. 0x89, 0x66, 0x9f, 0x0a, 0x22, 0xd3, 0x42, 0x74, 0xfd, 0xfc, 0x2b, 0xf8,
  278. 0x71, 0x35, 0xe3, 0x0a, 0xbd, 0xae, 0x26, 0x91, 0x62, 0x9c, 0x2f, 0x6f,
  279. 0x42, 0x5b, 0xd4, 0xe1, 0x19, 0x90, 0x4d, 0x47, 0x85, 0xec, 0xd9, 0x32,
  280. 0x8f, 0x15, 0x25, 0x95, 0x63, 0xe5, 0xa7, 0x1f, 0x91, 0x5e, 0xc0, 0xc0,
  281. 0x2b, 0x66, 0x65, 0x54, 0x71, 0x06, 0x7b, 0x01, 0x01, 0x6f, 0xdf, 0x93,
  282. 0x4a, 0x47, 0xb0, 0x17, 0xe0, 0x7c, 0x21, 0x33, 0x26, 0x41, 0x40, 0x0b,
  283. 0xbe, 0x57, 0x19, 0x05, 0x0d, 0xba, 0x22, 0xc0, 0x20, 0xb9, 0xb2, 0xd2,
  284. 0xcd, 0xb9, 0x33, 0xdb, 0xc7, 0x0f, 0x76, 0xfe, 0xc4, 0xb1, 0xd8, 0x39,
  285. 0x80, 0xfd, 0x1a, 0x13, 0xc4, 0x56, 0x58, 0x36,
  286. }
  287. };
  288. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  289. result = do_hmac_prng_pr_false_test(4, &vec);
  290. TC_END_RESULT(result);
  291. return result;
  292. }
  293. unsigned int test_5(void)
  294. {
  295. unsigned int result = TC_PASS;
  296. const struct hmac_prng_test_vector vec = {
  297. 32,
  298. 16,
  299. 0,
  300. 0,
  301. 128,
  302. {
  303. 0x09, 0x6e, 0xf3, 0x72, 0x94, 0xd3, 0x69, 0xfa, 0xce, 0x1a, 0xdd, 0x3e,
  304. 0xb8, 0xb4, 0x25, 0x89, 0x5e, 0x92, 0x16, 0x26, 0x49, 0x57, 0x05, 0xc5,
  305. 0xa0, 0x3e, 0xe5, 0x66, 0xb3, 0x41, 0x58, 0xec,
  306. },
  307. {
  308. 0x6e, 0x2e, 0x08, 0x25, 0x53, 0x4d, 0x29, 0x89, 0x71, 0x5c, 0xc8, 0x59,
  309. 0x56, 0xe0, 0x14, 0x8d,
  310. },
  311. {
  312. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  313. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  314. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  315. },
  316. {
  317. 0x1b, 0x4f, 0x71, 0x25, 0xf4, 0x72, 0xc2, 0x53, 0x83, 0x7f, 0xa7, 0x87,
  318. 0xd5, 0xac, 0xf0, 0x38, 0x2a, 0x3b, 0x89, 0xc3, 0xf4, 0x1c, 0x21, 0x1d,
  319. 0x26, 0x30, 0x52, 0x40, 0x2d, 0xcc, 0x62, 0xc5,
  320. },
  321. {
  322. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  323. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  324. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  325. },
  326. {
  327. 0x45, 0x41, 0xf2, 0x4f, 0x75, 0x9b, 0x5f, 0x2a, 0xc2, 0xb5, 0x7b, 0x51,
  328. 0x12, 0x50, 0x77, 0xcc, 0x74, 0x0b, 0x38, 0x59, 0xa7, 0x19, 0xa9, 0xba,
  329. 0xb1, 0x19, 0x6e, 0x6c, 0x0c, 0xa2, 0xbd, 0x05, 0x7a, 0xf9, 0xd3, 0x89,
  330. 0x23, 0x86, 0xa1, 0x81, 0x3f, 0xc8, 0x87, 0x5d, 0x8d, 0x36, 0x4f, 0x15,
  331. 0xe7, 0xfd, 0x69, 0xd1, 0xcc, 0x66, 0x59, 0x47, 0x04, 0x15, 0x27, 0x81,
  332. 0x64, 0xdf, 0x65, 0x62, 0x95, 0xba, 0x9c, 0xfc, 0xee, 0x79, 0xf6, 0xcb,
  333. 0xe2, 0x6e, 0xe1, 0x36, 0xe6, 0xb4, 0x5e, 0xc2, 0x24, 0xad, 0x37, 0x9c,
  334. 0x60, 0x79, 0xb1, 0x0a, 0x2e, 0x0c, 0xb5, 0xf7, 0xf7, 0x85, 0xef, 0x0a,
  335. 0xb7, 0xa7, 0xc3, 0xfc, 0xd9, 0xcb, 0x65, 0x06, 0x05, 0x4d, 0x20, 0xe2,
  336. 0xf3, 0xec, 0x61, 0x0c, 0xbb, 0xa9, 0xb0, 0x45, 0xa2, 0x48, 0xaf, 0x56,
  337. 0xe4, 0xf6, 0xd3, 0xf0, 0xc8, 0xd9, 0x6a, 0x23,
  338. }
  339. };
  340. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  341. result = do_hmac_prng_pr_false_test(5, &vec);
  342. TC_END_RESULT(result);
  343. return result;
  344. }
  345. unsigned int test_6(void)
  346. {
  347. unsigned int result = TC_PASS;
  348. const struct hmac_prng_test_vector vec = {
  349. 32,
  350. 16,
  351. 0,
  352. 0,
  353. 128,
  354. {
  355. 0xa7, 0xdc, 0xcd, 0xd4, 0x31, 0xae, 0x57, 0x26, 0xb8, 0x35, 0x85, 0xb5,
  356. 0x4e, 0xae, 0x41, 0x08, 0xf7, 0xb7, 0xa2, 0x5c, 0x70, 0x18, 0x7c, 0x0a,
  357. 0xcb, 0xb9, 0x4c, 0x96, 0xcc, 0x27, 0x7a, 0xa8,
  358. },
  359. {
  360. 0x94, 0xc8, 0xf4, 0xb8, 0xe1, 0x95, 0xa4, 0x73, 0x56, 0xa8, 0x9a, 0x50,
  361. 0xd1, 0x38, 0x9a, 0xb5,
  362. },
  363. {
  364. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  365. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  366. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  367. },
  368. {
  369. 0x51, 0x73, 0x3e, 0xee, 0x2e, 0x92, 0x2f, 0x40, 0x55, 0xe5, 0x39, 0x39,
  370. 0xe2, 0x22, 0xe7, 0x1f, 0xae, 0x73, 0x0e, 0xb0, 0x37, 0x44, 0x3d, 0xb2,
  371. 0xc7, 0x67, 0x97, 0x08, 0xab, 0xb8, 0x6a, 0x65,
  372. },
  373. {
  374. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  375. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  376. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  377. },
  378. {
  379. 0x99, 0xba, 0x26, 0x91, 0xa6, 0x22, 0xaf, 0xec, 0xc9, 0x47, 0x24, 0x18,
  380. 0xe6, 0xa8, 0xf9, 0xf1, 0xcd, 0xc1, 0xe3, 0x58, 0x3c, 0x3b, 0xc7, 0xa2,
  381. 0xa6, 0x50, 0xa1, 0xab, 0x79, 0xdc, 0xbc, 0xcb, 0xd6, 0x56, 0x63, 0x6c,
  382. 0x57, 0x31, 0x79, 0x27, 0x6e, 0x78, 0x25, 0x69, 0x42, 0x0c, 0x97, 0x43,
  383. 0x8c, 0x06, 0xbe, 0x89, 0x88, 0x67, 0xf6, 0x28, 0xb1, 0xc0, 0x1e, 0xb5,
  384. 0x70, 0x26, 0x3d, 0x2c, 0x0f, 0x09, 0xc7, 0xaa, 0xb5, 0x36, 0xf6, 0xfb,
  385. 0xa7, 0xdf, 0x6a, 0xad, 0x19, 0xe0, 0x5c, 0x23, 0x6b, 0x64, 0x56, 0x74,
  386. 0x66, 0x7c, 0x03, 0xd1, 0xb6, 0xa0, 0x4d, 0x7f, 0xc1, 0x11, 0x77, 0xfe,
  387. 0x78, 0x93, 0x3b, 0x30, 0x96, 0x79, 0xf5, 0xbf, 0x26, 0xa4, 0x63, 0x2b,
  388. 0x9a, 0x13, 0xe3, 0x14, 0xc4, 0xbf, 0x45, 0x32, 0x42, 0x8d, 0x3d, 0x95,
  389. 0xc6, 0x89, 0x00, 0x2b, 0x6d, 0xc1, 0xfb, 0xb1,
  390. }
  391. };
  392. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  393. result = do_hmac_prng_pr_false_test(6, &vec);
  394. TC_END_RESULT(result);
  395. return result;
  396. }
  397. unsigned int test_7(void)
  398. {
  399. unsigned int result = TC_PASS;
  400. const struct hmac_prng_test_vector vec = {
  401. 32,
  402. 16,
  403. 0,
  404. 0,
  405. 128,
  406. {
  407. 0xc2, 0x86, 0x42, 0x5e, 0xcf, 0x54, 0x3a, 0x49, 0xbc, 0xc9, 0x19, 0x6b,
  408. 0x0d, 0xb1, 0xa8, 0x0b, 0xc5, 0x4e, 0x49, 0x48, 0xad, 0xba, 0x6f, 0x41,
  409. 0x71, 0x2a, 0x35, 0x0a, 0x02, 0x89, 0x1f, 0xa6,
  410. },
  411. {
  412. 0x95, 0x7a, 0x65, 0x9a, 0x4e, 0xc2, 0xe0, 0xb7, 0xad, 0x18, 0x54, 0x83,
  413. 0xc2, 0x20, 0xfd, 0x61,
  414. },
  415. {
  416. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  417. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  418. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  419. },
  420. {
  421. 0x08, 0xc2, 0x12, 0x98, 0x13, 0xee, 0xa0, 0x77, 0x6f, 0xba, 0x72, 0x78,
  422. 0x8f, 0xdf, 0x27, 0x18, 0x75, 0x9c, 0xc3, 0xc4, 0x20, 0x7f, 0xa2, 0x0a,
  423. 0x5f, 0xe2, 0x3a, 0xc6, 0xe3, 0x2c, 0xc2, 0x8e,
  424. },
  425. {
  426. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  427. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  428. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  429. },
  430. {
  431. 0x8e, 0x10, 0x20, 0xa4, 0xfd, 0x84, 0xc9, 0x9e, 0x0f, 0xc7, 0xe3, 0xf7,
  432. 0xce, 0x48, 0xde, 0x5e, 0xd9, 0xec, 0x9a, 0x5c, 0x2c, 0xcd, 0x62, 0x4d,
  433. 0xbe, 0x6f, 0x30, 0xe2, 0xf6, 0x88, 0xa3, 0x1d, 0xc5, 0x59, 0x57, 0x63,
  434. 0x03, 0x57, 0xa5, 0xd4, 0x8c, 0xa2, 0xa4, 0x56, 0x24, 0x1a, 0x28, 0xbf,
  435. 0xb1, 0x6d, 0x8b, 0xb0, 0x00, 0x87, 0x76, 0x97, 0xa7, 0xce, 0x24, 0xd9,
  436. 0xad, 0x4d, 0x22, 0xb0, 0xc1, 0x51, 0x17, 0x99, 0x6f, 0x1f, 0x27, 0x0b,
  437. 0x94, 0xf4, 0x6d, 0x7a, 0x9b, 0xdf, 0xa7, 0x60, 0x8f, 0xa1, 0xdd, 0x84,
  438. 0x91, 0x77, 0xa9, 0xb8, 0x04, 0x9e, 0x51, 0xb6, 0xb7, 0xa2, 0x74, 0x26,
  439. 0x23, 0x85, 0x4a, 0x1f, 0xdd, 0xb5, 0xef, 0xc4, 0x47, 0xee, 0xd1, 0xea,
  440. 0x1a, 0xed, 0x6f, 0x02, 0xb4, 0xb2, 0x75, 0x4e, 0xcf, 0x71, 0xea, 0x05,
  441. 0x09, 0xda, 0x2e, 0x54, 0xf5, 0x24, 0xa7, 0xe7,
  442. }
  443. };
  444. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  445. result = do_hmac_prng_pr_false_test(7, &vec);
  446. TC_END_RESULT(result);
  447. return result;
  448. }
  449. unsigned int test_8(void)
  450. {
  451. unsigned int result = TC_PASS;
  452. const struct hmac_prng_test_vector vec = {
  453. 32,
  454. 16,
  455. 0,
  456. 0,
  457. 128,
  458. {
  459. 0x02, 0x81, 0x8b, 0xd7, 0xc1, 0xec, 0x45, 0x6a, 0xce, 0x55, 0xbe, 0xeb,
  460. 0xa9, 0x9f, 0x64, 0x6a, 0x6d, 0x3a, 0xa0, 0xea, 0x78, 0x35, 0x6e, 0xa7,
  461. 0x26, 0xb7, 0x63, 0xff, 0x0d, 0xd2, 0xd6, 0x56,
  462. },
  463. {
  464. 0xc4, 0x82, 0x68, 0x7d, 0x50, 0x8c, 0x9b, 0x5c, 0x2a, 0x75, 0xf7, 0xce,
  465. 0x39, 0x00, 0x14, 0xe8,
  466. },
  467. {
  468. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  469. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  470. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  471. },
  472. {
  473. 0xcf, 0x31, 0x9b, 0xfa, 0x63, 0x98, 0x0e, 0x3c, 0xb9, 0x97, 0xfd, 0x28,
  474. 0x77, 0x1b, 0xb5, 0x61, 0x4e, 0x3a, 0xcb, 0x11, 0x49, 0xba, 0x45, 0xc1,
  475. 0x33, 0xff, 0xbb, 0xab, 0x17, 0x43, 0x31, 0x93,
  476. },
  477. {
  478. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  479. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  480. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  481. },
  482. {
  483. 0x19, 0xa2, 0x31, 0xff, 0x26, 0xc1, 0x86, 0x5c, 0xe7, 0x5d, 0x7a, 0x71,
  484. 0x85, 0xc3, 0x0d, 0xd0, 0xb3, 0x33, 0x12, 0x64, 0x33, 0xd0, 0xc8, 0xcb,
  485. 0xf1, 0xbe, 0x0d, 0x2b, 0x38, 0x4d, 0x4e, 0xb3, 0xa8, 0xaf, 0xf0, 0x35,
  486. 0x40, 0xfb, 0xfa, 0x5f, 0x54, 0x96, 0x52, 0x1a, 0x4e, 0x4a, 0x64, 0x07,
  487. 0x1b, 0x44, 0xc7, 0x8b, 0xd0, 0xb7, 0xe6, 0x8f, 0xac, 0x9e, 0x56, 0x95,
  488. 0xc5, 0xc1, 0x3f, 0xd3, 0xb9, 0xdb, 0xe7, 0xf7, 0x73, 0x97, 0x81, 0xa4,
  489. 0xc8, 0xf0, 0xb9, 0x80, 0xf1, 0xb1, 0x7d, 0x99, 0xbc, 0xe1, 0x7c, 0xeb,
  490. 0x52, 0xb5, 0x68, 0x66, 0xae, 0x02, 0x45, 0x6f, 0xfe, 0xf8, 0x33, 0x99,
  491. 0xc8, 0xcf, 0x78, 0x26, 0xf3, 0xc4, 0x5c, 0x8a, 0x19, 0x31, 0x58, 0x90,
  492. 0x91, 0x9d, 0x20, 0xf4, 0x0f, 0xc4, 0xe1, 0x8d, 0x07, 0xe9, 0xc8, 0xcc,
  493. 0xd1, 0x6c, 0x33, 0x27, 0xb5, 0x98, 0x8f, 0x71,
  494. }
  495. };
  496. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  497. result = do_hmac_prng_pr_false_test(8, &vec);
  498. TC_END_RESULT(result);
  499. return result;
  500. }
  501. unsigned int test_9(void)
  502. {
  503. unsigned int result = TC_PASS;
  504. const struct hmac_prng_test_vector vec = {
  505. 32,
  506. 16,
  507. 0,
  508. 0,
  509. 128,
  510. {
  511. 0x77, 0xa5, 0xc8, 0x6d, 0x99, 0xbe, 0x7b, 0xc2, 0x50, 0x28, 0x70, 0xf4,
  512. 0x02, 0x5f, 0x9f, 0x75, 0x63, 0xe9, 0x17, 0x4e, 0xc6, 0x7c, 0x5f, 0x48,
  513. 0x1f, 0x21, 0xfc, 0xf2, 0xb4, 0x1c, 0xae, 0x4b,
  514. },
  515. {
  516. 0xed, 0x04, 0x4a, 0xd7, 0x2e, 0xe8, 0x22, 0x50, 0x6a, 0x6d, 0x0b, 0x12,
  517. 0x11, 0x50, 0x29, 0x67,
  518. },
  519. {
  520. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  521. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  522. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  523. },
  524. {
  525. 0x77, 0x81, 0x00, 0x74, 0x9f, 0x01, 0xa4, 0xd3, 0x5c, 0x3b, 0x4a, 0x95,
  526. 0x8a, 0xaf, 0xe2, 0x96, 0x87, 0x7e, 0x0a, 0xca, 0xfd, 0x08, 0x9f, 0x50,
  527. 0xbc, 0x77, 0x97, 0xa4, 0x2a, 0x33, 0xab, 0x71,
  528. },
  529. {
  530. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  531. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  532. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  533. },
  534. {
  535. 0x83, 0x1a, 0x4d, 0xa5, 0x66, 0xf4, 0x62, 0x89, 0x90, 0x48, 0x93, 0xef,
  536. 0x1c, 0xc1, 0xcd, 0x4a, 0xd1, 0x9e, 0xe4, 0x8f, 0x38, 0x57, 0xe2, 0xb6,
  537. 0x9e, 0x93, 0x6d, 0x10, 0xaf, 0xbd, 0xc2, 0x98, 0x22, 0xe8, 0x5d, 0x02,
  538. 0x66, 0x3d, 0x34, 0x6e, 0xf3, 0xe0, 0x9a, 0x84, 0x8b, 0x1d, 0x9c, 0xc0,
  539. 0x4f, 0x4c, 0x4c, 0x6e, 0x3b, 0x3b, 0x0e, 0x56, 0xa0, 0x34, 0xe2, 0x33,
  540. 0x4d, 0x34, 0xca, 0x08, 0xf8, 0x09, 0x7b, 0xe3, 0x07, 0xba, 0x41, 0xd0,
  541. 0x20, 0xbc, 0x94, 0xf8, 0xc1, 0x93, 0x7f, 0xe8, 0x56, 0x44, 0xee, 0xb5,
  542. 0x59, 0x2c, 0x2b, 0x5a, 0x21, 0x38, 0xf7, 0xde, 0xd9, 0xa5, 0xb4, 0x4b,
  543. 0x20, 0x0c, 0x8b, 0x5b, 0xeb, 0x27, 0x59, 0x7c, 0x79, 0x0f, 0x94, 0xd6,
  544. 0x60, 0xeb, 0x61, 0xe8, 0x24, 0x83, 0x91, 0xed, 0xc3, 0xae, 0x2d, 0x77,
  545. 0x65, 0x6c, 0xbe, 0x83, 0x54, 0x27, 0x5b, 0x13,
  546. }
  547. };
  548. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  549. result = do_hmac_prng_pr_false_test(9, &vec);
  550. TC_END_RESULT(result);
  551. return result;
  552. }
  553. unsigned int test_10(void)
  554. {
  555. unsigned int result = TC_PASS;
  556. const struct hmac_prng_test_vector vec = {
  557. 32,
  558. 16,
  559. 0,
  560. 0,
  561. 128,
  562. {
  563. 0x0e, 0xa4, 0x58, 0xcf, 0xf8, 0xbf, 0xd1, 0xdd, 0x8b, 0x1a, 0xdd, 0xcb,
  564. 0xa9, 0xc0, 0x13, 0x17, 0xd5, 0x30, 0x39, 0xe5, 0x33, 0x10, 0x4e, 0x32,
  565. 0xf9, 0x6e, 0x7d, 0x34, 0x2e, 0x6c, 0x7b, 0x9b,
  566. },
  567. {
  568. 0x93, 0x5a, 0x4b, 0x66, 0xfc, 0x74, 0xc2, 0xa4, 0x87, 0x57, 0xa9, 0x9c,
  569. 0x39, 0x9e, 0x64, 0xe3,
  570. },
  571. {
  572. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  573. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  574. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  575. },
  576. {
  577. 0x6c, 0x5f, 0x37, 0x08, 0xe7, 0xb7, 0x14, 0xc4, 0xed, 0x13, 0x9b, 0x4f,
  578. 0xa9, 0xe8, 0xc7, 0x63, 0xaf, 0x01, 0x77, 0x34, 0x84, 0x00, 0x51, 0x09,
  579. 0xa8, 0x5e, 0x33, 0x65, 0x3b, 0xb0, 0xce, 0x98,
  580. },
  581. {
  582. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  583. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  584. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  585. },
  586. {
  587. 0x37, 0x3a, 0x37, 0xaf, 0x84, 0xfd, 0xde, 0xc1, 0x36, 0x45, 0xa9, 0x76,
  588. 0x8d, 0x6a, 0x78, 0x5a, 0xe5, 0xa2, 0x58, 0x9d, 0x64, 0xcd, 0x9b, 0x37,
  589. 0x98, 0x0d, 0xde, 0x25, 0x41, 0x49, 0x92, 0x10, 0xc4, 0xf4, 0x08, 0x33,
  590. 0x5d, 0xe1, 0xd5, 0x85, 0x34, 0x90, 0x64, 0xf3, 0xf5, 0x3a, 0x2b, 0x4c,
  591. 0x5e, 0xc6, 0xdc, 0x2a, 0x09, 0x59, 0x1f, 0x99, 0xad, 0x9f, 0xad, 0x52,
  592. 0x8a, 0xc8, 0x34, 0x74, 0x16, 0x4b, 0x45, 0x49, 0x7b, 0xf1, 0x67, 0xf8,
  593. 0x1e, 0x66, 0xfa, 0x08, 0x46, 0x3f, 0xfe, 0xa9, 0x17, 0xf6, 0x89, 0x1e,
  594. 0x48, 0xf1, 0x49, 0xfa, 0xfc, 0x20, 0x62, 0x2b, 0xb1, 0x17, 0x2f, 0x34,
  595. 0x88, 0x6f, 0xeb, 0x45, 0xc2, 0x6f, 0xd4, 0x46, 0xa4, 0xa4, 0xe2, 0x89,
  596. 0x1b, 0x4b, 0xc5, 0x94, 0x18, 0x68, 0x96, 0x14, 0x1a, 0xaa, 0xee, 0xb3,
  597. 0x01, 0xb4, 0x9e, 0x7c, 0x1a, 0x26, 0xfe, 0xc7,
  598. }
  599. };
  600. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  601. result = do_hmac_prng_pr_false_test(10, &vec);
  602. TC_END_RESULT(result);
  603. return result;
  604. }
  605. unsigned int test_11(void)
  606. {
  607. unsigned int result = TC_PASS;
  608. const struct hmac_prng_test_vector vec = {
  609. 32,
  610. 16,
  611. 0,
  612. 0,
  613. 128,
  614. {
  615. 0xbf, 0xb6, 0x8b, 0xe4, 0xce, 0x17, 0x56, 0xd2, 0x5b, 0xdf, 0xad, 0x5e,
  616. 0x0c, 0x2f, 0x8b, 0xec, 0x29, 0x36, 0x09, 0x01, 0xcc, 0x4d, 0xa5, 0x1d,
  617. 0x42, 0x3d, 0x15, 0x91, 0xcc, 0x57, 0xe1, 0xba,
  618. },
  619. {
  620. 0x98, 0xaf, 0xe4, 0xbd, 0x19, 0x4c, 0x14, 0x3e, 0x09, 0x96, 0x80, 0xc5,
  621. 0x04, 0xcc, 0xea, 0xab,
  622. },
  623. {
  624. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  625. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  626. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  627. },
  628. {
  629. 0xb9, 0x7c, 0xaf, 0x21, 0x0e, 0x82, 0x49, 0x8c, 0x34, 0x08, 0x79, 0x0d,
  630. 0x41, 0xc3, 0x20, 0xdd, 0x4a, 0x72, 0x00, 0x77, 0x78, 0x38, 0x9b, 0x44,
  631. 0xb7, 0xbc, 0x3c, 0x1c, 0x4b, 0x8c, 0x53, 0xf8,
  632. },
  633. {
  634. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  635. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  636. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  637. },
  638. {
  639. 0x40, 0x9e, 0x0a, 0xa9, 0x49, 0xfb, 0x3b, 0x38, 0x23, 0x1b, 0xf8, 0x73,
  640. 0x2e, 0x79, 0x59, 0xe9, 0x43, 0xa3, 0x38, 0xea, 0x39, 0x90, 0x26, 0xb7,
  641. 0x44, 0xdf, 0x15, 0xcb, 0xfe, 0xff, 0x8d, 0x71, 0xb3, 0xda, 0x02, 0x3d,
  642. 0xcc, 0xe0, 0x59, 0xa8, 0x8c, 0xf0, 0xd4, 0xb7, 0x47, 0x5f, 0x62, 0x8e,
  643. 0x47, 0x64, 0xc8, 0xbe, 0xf1, 0x3c, 0x70, 0xcf, 0xbb, 0xbb, 0x6d, 0xa2,
  644. 0xa1, 0x8a, 0xab, 0xca, 0xd9, 0x19, 0xdb, 0x09, 0xd0, 0x4f, 0xc5, 0x97,
  645. 0x65, 0xed, 0xb1, 0x65, 0x14, 0x7c, 0x88, 0xdd, 0x47, 0x3a, 0x0f, 0x3c,
  646. 0x5e, 0xe1, 0x92, 0x37, 0xca, 0x95, 0x56, 0x97, 0xe0, 0x01, 0xba, 0x65,
  647. 0x4c, 0x5e, 0xe0, 0xbd, 0x26, 0x76, 0x1b, 0x49, 0x33, 0x31, 0x54, 0x42,
  648. 0x6b, 0xc6, 0x32, 0x86, 0x29, 0x8a, 0x8b, 0xe6, 0x34, 0xfe, 0x0d, 0x72,
  649. 0xcf, 0xde, 0xef, 0x0f, 0x3f, 0xc4, 0x8e, 0xca,
  650. }
  651. };
  652. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  653. result = do_hmac_prng_pr_false_test(11, &vec);
  654. TC_END_RESULT(result);
  655. return result;
  656. }
  657. unsigned int test_12(void)
  658. {
  659. unsigned int result = TC_PASS;
  660. const struct hmac_prng_test_vector vec = {
  661. 32,
  662. 16,
  663. 0,
  664. 0,
  665. 128,
  666. {
  667. 0x4f, 0x68, 0x80, 0xa6, 0x46, 0x10, 0x00, 0x44, 0x63, 0x03, 0x1d, 0x67,
  668. 0xd7, 0x92, 0x4f, 0xa4, 0x46, 0xc3, 0x91, 0x38, 0xd4, 0xd4, 0x10, 0x07,
  669. 0xe8, 0xdf, 0x3d, 0x65, 0x69, 0x1a, 0x93, 0x67,
  670. },
  671. {
  672. 0x6b, 0x33, 0xb2, 0xc1, 0x36, 0x00, 0xf4, 0xb1, 0xdf, 0x6c, 0xa3, 0xd1,
  673. 0x96, 0x0e, 0x8d, 0xd4,
  674. },
  675. {
  676. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  677. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  678. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  679. },
  680. {
  681. 0x57, 0xb8, 0x7b, 0x8c, 0x8f, 0x48, 0x31, 0x2b, 0x53, 0x33, 0xd4, 0x3b,
  682. 0x36, 0x77, 0x30, 0xc0, 0xa5, 0xad, 0x47, 0x25, 0xa1, 0x67, 0x78, 0xfc,
  683. 0xb5, 0x3f, 0xe1, 0x36, 0xd1, 0x36, 0xcb, 0xfd,
  684. },
  685. {
  686. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  687. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  688. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  689. },
  690. {
  691. 0x73, 0xd0, 0xf3, 0x24, 0xed, 0x18, 0x6e, 0x2a, 0xd0, 0x6b, 0xd1, 0x80,
  692. 0x0e, 0x26, 0x2b, 0xdb, 0xda, 0x79, 0xba, 0x54, 0xe6, 0x26, 0x76, 0x1b,
  693. 0xd6, 0x0f, 0x74, 0xf4, 0x3e, 0x3b, 0xb6, 0x29, 0x58, 0xec, 0x1e, 0x2f,
  694. 0x1d, 0x94, 0x0a, 0xf1, 0x63, 0xe1, 0xca, 0xdc, 0x12, 0x4e, 0x7e, 0xba,
  695. 0xba, 0x2f, 0x72, 0xe6, 0x7e, 0xfd, 0x74, 0x6c, 0x7f, 0x6d, 0x0c, 0xad,
  696. 0x53, 0xef, 0x03, 0xd8, 0x59, 0xd9, 0x3c, 0xff, 0x77, 0x8a, 0x32, 0xee,
  697. 0x5b, 0xe1, 0x72, 0xfe, 0x7f, 0xdb, 0xdc, 0x23, 0x2d, 0xed, 0x36, 0x0d,
  698. 0x70, 0x4a, 0x6f, 0xa0, 0xf7, 0x0b, 0xeb, 0xe9, 0x42, 0xe5, 0x64, 0x78,
  699. 0x34, 0x54, 0x92, 0xf4, 0x9d, 0xc5, 0xc6, 0xfc, 0x34, 0x6b, 0x88, 0xa5,
  700. 0x89, 0x47, 0xad, 0x25, 0x0e, 0x68, 0x8e, 0x8c, 0x62, 0x6f, 0xe1, 0xef,
  701. 0xe7, 0x62, 0x46, 0x20, 0xe5, 0x71, 0x97, 0x6e,
  702. }
  703. };
  704. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  705. result = do_hmac_prng_pr_false_test(12, &vec);
  706. TC_END_RESULT(result);
  707. return result;
  708. }
  709. unsigned int test_13(void)
  710. {
  711. unsigned int result = TC_PASS;
  712. const struct hmac_prng_test_vector vec = {
  713. 32,
  714. 16,
  715. 0,
  716. 0,
  717. 128,
  718. {
  719. 0xaa, 0xe3, 0x52, 0xe1, 0x11, 0x84, 0x32, 0x19, 0xca, 0xe8, 0xf7, 0x0e,
  720. 0x7b, 0x8f, 0x6e, 0xb9, 0xbb, 0x53, 0xd2, 0x46, 0xcb, 0xec, 0x1e, 0x4f,
  721. 0x07, 0xd4, 0x27, 0x57, 0x14, 0x32, 0x95, 0xb4,
  722. },
  723. {
  724. 0xb8, 0x44, 0x85, 0xdc, 0xcd, 0x1b, 0xf9, 0x32, 0x10, 0xe3, 0x22, 0xea,
  725. 0xfc, 0xbe, 0xbc, 0xd9,
  726. },
  727. {
  728. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  729. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  730. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  731. },
  732. {
  733. 0xf9, 0x23, 0x7f, 0x00, 0xd7, 0x44, 0xd8, 0xfb, 0xff, 0x21, 0xb9, 0xd0,
  734. 0x04, 0x3c, 0x25, 0x8e, 0x87, 0x31, 0x81, 0x7e, 0x6a, 0x5f, 0xb7, 0xb4,
  735. 0xbf, 0x50, 0x11, 0x68, 0x0e, 0x5b, 0xc6, 0x42,
  736. },
  737. {
  738. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  739. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  740. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  741. },
  742. {
  743. 0xcf, 0xb2, 0x8b, 0x93, 0x52, 0x2c, 0x7d, 0x61, 0xd8, 0xd3, 0xce, 0x3f,
  744. 0x08, 0x0e, 0x43, 0x5e, 0x4c, 0x83, 0xc7, 0xe1, 0x3a, 0x9d, 0xab, 0x78,
  745. 0x8d, 0xb8, 0xfe, 0xf0, 0x40, 0x72, 0x67, 0xa1, 0x4f, 0xbc, 0x93, 0x24,
  746. 0xe0, 0x90, 0xe2, 0x4d, 0xf5, 0x49, 0x1f, 0xed, 0xfa, 0x81, 0x11, 0x68,
  747. 0x69, 0x98, 0x39, 0x38, 0xd4, 0xd4, 0xd7, 0x32, 0x4a, 0x31, 0x0c, 0x3a,
  748. 0xf3, 0x3a, 0x6f, 0x79, 0x38, 0xf6, 0x02, 0xc5, 0xe4, 0xe6, 0x3f, 0x17,
  749. 0x71, 0xcd, 0xaa, 0xbd, 0xab, 0x07, 0x82, 0xb5, 0xaf, 0xfb, 0x54, 0xeb,
  750. 0x53, 0x04, 0x7c, 0x10, 0x9a, 0x96, 0x06, 0x73, 0x9d, 0xd0, 0x06, 0x5b,
  751. 0xd2, 0x1e, 0xca, 0x33, 0x13, 0x29, 0x86, 0x55, 0x48, 0x78, 0x35, 0x4f,
  752. 0x5f, 0x9f, 0x85, 0x2e, 0x67, 0x4d, 0xd6, 0x90, 0x16, 0x3b, 0x0f, 0xf7,
  753. 0x4c, 0x7a, 0x25, 0xe6, 0xba, 0xe8, 0xce, 0x39,
  754. }
  755. };
  756. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  757. result = do_hmac_prng_pr_false_test(13, &vec);
  758. TC_END_RESULT(result);
  759. return result;
  760. }
  761. unsigned int test_14(void)
  762. {
  763. unsigned int result = TC_PASS;
  764. const struct hmac_prng_test_vector vec = {
  765. 32,
  766. 16,
  767. 0,
  768. 0,
  769. 128,
  770. {
  771. 0x58, 0x9e, 0x79, 0xe3, 0x39, 0xb7, 0xd2, 0xa1, 0xb8, 0x79, 0xf0, 0xb0,
  772. 0xe1, 0xa7, 0xd1, 0xad, 0x24, 0x74, 0xea, 0xa8, 0x02, 0x5b, 0x07, 0x0f,
  773. 0x1f, 0xfa, 0x87, 0x7b, 0x71, 0x24, 0xd4, 0xff,
  774. },
  775. {
  776. 0x09, 0x61, 0xed, 0x64, 0xdb, 0xd6, 0x20, 0x65, 0xd9, 0x6e, 0x75, 0xde,
  777. 0x6d, 0x2f, 0xf9, 0xd6,
  778. },
  779. {
  780. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  781. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  782. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  783. },
  784. {
  785. 0xe9, 0x28, 0x38, 0x8d, 0x3a, 0xf4, 0x8c, 0x29, 0x68, 0x52, 0x7a, 0x4d,
  786. 0x2f, 0x9c, 0x26, 0x26, 0xfb, 0xc3, 0xf3, 0xf5, 0xa5, 0xd8, 0x4e, 0x05,
  787. 0x83, 0xab, 0x6f, 0x78, 0xe7, 0xf8, 0xb0, 0x81,
  788. },
  789. {
  790. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  791. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  792. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  793. },
  794. {
  795. 0xfc, 0xe6, 0xce, 0xd1, 0xec, 0xf4, 0x74, 0xd1, 0x81, 0xab, 0x33, 0x1f,
  796. 0x79, 0xc3, 0xd2, 0xcc, 0x8a, 0x76, 0x8e, 0xc2, 0x81, 0x8d, 0xe5, 0xb3,
  797. 0xfc, 0x7c, 0xf4, 0x18, 0x32, 0x27, 0x16, 0xd6, 0xa6, 0x85, 0x37, 0x33,
  798. 0x56, 0x1a, 0x49, 0x7c, 0x0c, 0x25, 0xcb, 0x28, 0x8d, 0x2c, 0x9f, 0xcf,
  799. 0xbc, 0xa8, 0x91, 0xba, 0xfd, 0x5a, 0x83, 0x4c, 0x85, 0xf3, 0x60, 0x3f,
  800. 0x40, 0x2a, 0xcf, 0x1a, 0x7b, 0x1e, 0xa9, 0x2d, 0xb8, 0x47, 0xed, 0x5c,
  801. 0x25, 0x2a, 0x86, 0x2a, 0xd4, 0xab, 0x5e, 0x25, 0x97, 0x15, 0xf1, 0xfc,
  802. 0x81, 0xda, 0x67, 0xf5, 0x23, 0x0b, 0xf8, 0xbe, 0x50, 0xee, 0x80, 0x69,
  803. 0x75, 0x80, 0x95, 0xf7, 0xd0, 0xe5, 0x59, 0xe0, 0x3f, 0x2c, 0x60, 0x72,
  804. 0x29, 0x0e, 0x61, 0x79, 0x44, 0x58, 0x43, 0x76, 0x09, 0xe4, 0x73, 0xeb,
  805. 0x66, 0x58, 0x0c, 0xdd, 0xaa, 0xd1, 0x9b, 0x71,
  806. }
  807. };
  808. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  809. result = do_hmac_prng_pr_false_test(14, &vec);
  810. TC_END_RESULT(result);
  811. return result;
  812. }
  813. unsigned int test_15(void)
  814. {
  815. unsigned int result = TC_PASS;
  816. const struct hmac_prng_test_vector vec = {
  817. 32,
  818. 16,
  819. 0,
  820. 0,
  821. 128,
  822. {
  823. 0x71, 0x42, 0x77, 0xd4, 0x08, 0xad, 0x87, 0xfd, 0xe3, 0x17, 0xf0, 0xa9,
  824. 0x47, 0x32, 0xfc, 0xe6, 0x2f, 0x13, 0x52, 0xbd, 0xc9, 0x09, 0x36, 0x67,
  825. 0x3b, 0x4f, 0x1d, 0xaa, 0x09, 0x25, 0xaa, 0x26,
  826. },
  827. {
  828. 0xd1, 0x65, 0x82, 0xa9, 0x9f, 0x23, 0x01, 0x0b, 0x42, 0x48, 0xb8, 0x8d,
  829. 0x86, 0x48, 0x54, 0x19,
  830. },
  831. {
  832. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  833. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  834. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  835. },
  836. {
  837. 0xbd, 0x9f, 0xc7, 0xcb, 0x2f, 0xd5, 0x06, 0x3b, 0x2c, 0x3c, 0x0c, 0x4f,
  838. 0x34, 0x6a, 0xd2, 0xe3, 0x87, 0x93, 0x71, 0xa9, 0xc8, 0x05, 0xe5, 0x9b,
  839. 0x9f, 0x2c, 0xd2, 0xcc, 0x2a, 0x40, 0x89, 0x4f,
  840. },
  841. {
  842. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  843. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  844. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  845. },
  846. {
  847. 0x62, 0xef, 0x7a, 0x43, 0x12, 0x88, 0x25, 0x2e, 0x0d, 0x73, 0x6c, 0x1d,
  848. 0x4e, 0x36, 0xcc, 0x9a, 0xc3, 0x71, 0x07, 0xdc, 0xd0, 0xd0, 0xe9, 0x71,
  849. 0xa2, 0x24, 0x44, 0xa4, 0xad, 0xae, 0x73, 0xa4, 0x1e, 0xff, 0x0b, 0x11,
  850. 0xc8, 0x62, 0x5e, 0x11, 0x8d, 0xbc, 0x92, 0x26, 0x14, 0x2f, 0xd0, 0xa6,
  851. 0xaa, 0x10, 0xac, 0x9b, 0x19, 0x09, 0x19, 0xbd, 0xa4, 0x4e, 0x72, 0x48,
  852. 0xd6, 0xc8, 0x88, 0x74, 0x61, 0x2a, 0xbd, 0x77, 0xfb, 0x37, 0x16, 0xea,
  853. 0x51, 0x5a, 0x2d, 0x56, 0x32, 0x37, 0xc4, 0x46, 0xe2, 0xa2, 0x82, 0xe7,
  854. 0xc3, 0xb0, 0xa3, 0xae, 0xf2, 0x7d, 0x34, 0x27, 0xcc, 0x7d, 0x0a, 0x7d,
  855. 0x38, 0x71, 0x46, 0x59, 0xc3, 0x40, 0x1d, 0xbc, 0x91, 0xd3, 0x59, 0x51,
  856. 0x59, 0x31, 0x8e, 0xbc, 0xa0, 0x1a, 0xe7, 0xd7, 0xfd, 0x1c, 0x89, 0xf6,
  857. 0xad, 0x6b, 0x60, 0x41, 0x73, 0xb0, 0xc7, 0x44,
  858. }
  859. };
  860. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  861. result = do_hmac_prng_pr_false_test(15, &vec);
  862. TC_END_RESULT(result);
  863. return result;
  864. }
  865. unsigned int test_16(void)
  866. {
  867. unsigned int result = TC_PASS;
  868. const struct hmac_prng_test_vector vec = {
  869. 32,
  870. 16,
  871. 32,
  872. 0,
  873. 128,
  874. {
  875. 0xfa, 0x0e, 0xe1, 0xfe, 0x39, 0xc7, 0xc3, 0x90, 0xaa, 0x94, 0x15, 0x9d,
  876. 0x0d, 0xe9, 0x75, 0x64, 0x34, 0x2b, 0x59, 0x17, 0x77, 0xf3, 0xe5, 0xf6,
  877. 0xa4, 0xba, 0x2a, 0xea, 0x34, 0x2e, 0xc8, 0x40,
  878. },
  879. {
  880. 0xdd, 0x08, 0x20, 0x65, 0x5c, 0xb2, 0xff, 0xdb, 0x0d, 0xa9, 0xe9, 0x31,
  881. 0x0a, 0x67, 0xc9, 0xe5,
  882. },
  883. {
  884. 0xf2, 0xe5, 0x8f, 0xe6, 0x0a, 0x3a, 0xfc, 0x59, 0xda, 0xd3, 0x75, 0x95,
  885. 0x41, 0x5f, 0xfd, 0x31, 0x8c, 0xcf, 0x69, 0xd6, 0x77, 0x80, 0xf6, 0xfa,
  886. 0x07, 0x97, 0xdc, 0x9a, 0xa4, 0x3e, 0x14, 0x4c,
  887. },
  888. {
  889. 0xe0, 0x62, 0x9b, 0x6d, 0x79, 0x75, 0xdd, 0xfa, 0x96, 0xa3, 0x99, 0x64,
  890. 0x87, 0x40, 0xe6, 0x0f, 0x1f, 0x95, 0x57, 0xdc, 0x58, 0xb3, 0xd7, 0x41,
  891. 0x5f, 0x9b, 0xa9, 0xd4, 0xdb, 0xb5, 0x01, 0xf6,
  892. },
  893. {
  894. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  895. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  896. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  897. },
  898. {
  899. 0xf9, 0x2d, 0x4c, 0xf9, 0x9a, 0x53, 0x5b, 0x20, 0x22, 0x2a, 0x52, 0xa6,
  900. 0x8d, 0xb0, 0x4c, 0x5a, 0xf6, 0xf5, 0xff, 0xc7, 0xb6, 0x6a, 0x47, 0x3a,
  901. 0x37, 0xa2, 0x56, 0xbd, 0x8d, 0x29, 0x8f, 0x9b, 0x4a, 0xa4, 0xaf, 0x7e,
  902. 0x8d, 0x18, 0x1e, 0x02, 0x36, 0x79, 0x03, 0xf9, 0x3b, 0xdb, 0x74, 0x4c,
  903. 0x6c, 0x2f, 0x3f, 0x34, 0x72, 0x62, 0x6b, 0x40, 0xce, 0x9b, 0xd6, 0xa7,
  904. 0x0e, 0x7b, 0x8f, 0x93, 0x99, 0x2a, 0x16, 0xa7, 0x6f, 0xab, 0x6b, 0x5f,
  905. 0x16, 0x25, 0x68, 0xe0, 0x8e, 0xe6, 0xc3, 0xe8, 0x04, 0xae, 0xfd, 0x95,
  906. 0x2d, 0xdd, 0x3a, 0xcb, 0x79, 0x1c, 0x50, 0xf2, 0xad, 0x69, 0xe9, 0xa0,
  907. 0x40, 0x28, 0xa0, 0x6a, 0x9c, 0x01, 0xd3, 0xa6, 0x2a, 0xca, 0x2a, 0xaf,
  908. 0x6e, 0xfe, 0x69, 0xed, 0x97, 0xa0, 0x16, 0x21, 0x3a, 0x2d, 0xd6, 0x42,
  909. 0xb4, 0x88, 0x67, 0x64, 0x07, 0x2d, 0x9c, 0xbe,
  910. }
  911. };
  912. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  913. result = do_hmac_prng_pr_false_test(16, &vec);
  914. TC_END_RESULT(result);
  915. return result;
  916. }
  917. unsigned int test_17(void)
  918. {
  919. unsigned int result = TC_PASS;
  920. const struct hmac_prng_test_vector vec = {
  921. 32,
  922. 16,
  923. 32,
  924. 0,
  925. 128,
  926. {
  927. 0xcf, 0xf7, 0x2f, 0x34, 0x51, 0x15, 0x37, 0x6a, 0x57, 0xf4, 0xdb, 0x8a,
  928. 0x5c, 0x9f, 0x64, 0x05, 0x3e, 0x73, 0x79, 0x17, 0x1a, 0x5a, 0x1e, 0x81,
  929. 0xe8, 0x2a, 0xad, 0x34, 0x48, 0xd1, 0x7d, 0x44,
  930. },
  931. {
  932. 0xd1, 0xe9, 0x71, 0xec, 0x79, 0x5d, 0x09, 0x8b, 0x3d, 0xae, 0x14, 0xff,
  933. 0xcb, 0xee, 0xcf, 0xd9,
  934. },
  935. {
  936. 0x6e, 0xc0, 0xc7, 0x98, 0xc2, 0x40, 0xf2, 0x27, 0x40, 0xca, 0xd7, 0xe2,
  937. 0x7b, 0x41, 0xf5, 0xe4, 0x2d, 0xcc, 0xaf, 0x66, 0xde, 0xf3, 0xb7, 0xf3,
  938. 0x41, 0xc4, 0xd8, 0x27, 0x29, 0x4f, 0x83, 0xc9,
  939. },
  940. {
  941. 0x45, 0xec, 0x80, 0xf0, 0xc0, 0x0c, 0xad, 0x0f, 0xf0, 0xb7, 0x61, 0x6d,
  942. 0x2a, 0x93, 0x0a, 0xf3, 0xf5, 0xcf, 0x23, 0xcd, 0x61, 0xbe, 0x7f, 0xbf,
  943. 0x7c, 0x65, 0xbe, 0x00, 0x31, 0xe9, 0x3e, 0x38,
  944. },
  945. {
  946. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  947. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  948. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  949. },
  950. {
  951. 0x17, 0xa7, 0x90, 0x1e, 0x25, 0x50, 0xde, 0x08, 0x8f, 0x47, 0x25, 0x18,
  952. 0xd3, 0x77, 0xcc, 0x4c, 0xc6, 0x97, 0x9f, 0x4a, 0x64, 0xf4, 0x97, 0x5c,
  953. 0x74, 0x34, 0x42, 0x15, 0xe4, 0x80, 0x7a, 0x12, 0x34, 0xee, 0xfe, 0xf9,
  954. 0x9f, 0x64, 0xcb, 0x8a, 0xbc, 0x3f, 0xb8, 0x62, 0x09, 0xf6, 0xfc, 0x7d,
  955. 0xdd, 0x03, 0xe9, 0x4f, 0x83, 0x74, 0x6c, 0x5a, 0xbe, 0x53, 0x60, 0xcd,
  956. 0xde, 0x4f, 0x25, 0x25, 0xcc, 0xf7, 0x16, 0x7e, 0x6f, 0x0b, 0xef, 0xae,
  957. 0x05, 0xb3, 0x8f, 0xd6, 0x08, 0x9a, 0x2a, 0xb8, 0x37, 0x19, 0x87, 0x4c,
  958. 0xe8, 0xf6, 0x70, 0x48, 0x0d, 0x5f, 0x3e, 0xd9, 0xbf, 0x40, 0x53, 0x8a,
  959. 0x15, 0xaa, 0xad, 0x11, 0x2d, 0xb1, 0x61, 0x8a, 0x58, 0xb1, 0x06, 0x87,
  960. 0xb6, 0x88, 0x75, 0xf0, 0x0f, 0x13, 0x9a, 0x72, 0xbd, 0xf0, 0x43, 0xf7,
  961. 0x36, 0xe4, 0xa3, 0x20, 0xc0, 0x6e, 0xfd, 0x2c,
  962. }
  963. };
  964. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  965. result = do_hmac_prng_pr_false_test(17, &vec);
  966. TC_END_RESULT(result);
  967. return result;
  968. }
  969. unsigned int test_18(void)
  970. {
  971. unsigned int result = TC_PASS;
  972. const struct hmac_prng_test_vector vec = {
  973. 32,
  974. 16,
  975. 32,
  976. 0,
  977. 128,
  978. {
  979. 0xb7, 0x09, 0x9b, 0x06, 0xfc, 0x7a, 0x8a, 0x74, 0xc5, 0x82, 0x19, 0x72,
  980. 0x9d, 0xb6, 0xb0, 0xf7, 0x80, 0xd7, 0xb4, 0xfa, 0x30, 0x7b, 0xc3, 0xd3,
  981. 0xf9, 0xf2, 0x2b, 0xfb, 0x76, 0x35, 0x96, 0xa3,
  982. },
  983. {
  984. 0xb8, 0x77, 0x20, 0x59, 0xa1, 0x35, 0xa6, 0xb6, 0x1d, 0xa7, 0x2f, 0x37,
  985. 0x54, 0x11, 0xde, 0x26,
  986. },
  987. {
  988. 0x2a, 0xc1, 0xbf, 0xb2, 0x4e, 0x0b, 0x8c, 0x6a, 0xc2, 0x80, 0x3e, 0x89,
  989. 0x26, 0x18, 0x22, 0xb7, 0xf7, 0x2a, 0x03, 0x20, 0xdf, 0x2b, 0x19, 0x91,
  990. 0x71, 0xb7, 0x9b, 0xcb, 0xdb, 0x40, 0xb7, 0x19,
  991. },
  992. {
  993. 0x9a, 0xec, 0x4f, 0x56, 0xec, 0x5e, 0x96, 0xfb, 0xd9, 0x60, 0x48, 0xb9,
  994. 0xa6, 0x3a, 0xc8, 0xd0, 0x47, 0xae, 0xdb, 0xbe, 0xea, 0x77, 0x12, 0xe2,
  995. 0x41, 0x13, 0x3b, 0x1a, 0x35, 0x7e, 0xcf, 0xc4,
  996. },
  997. {
  998. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  999. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1000. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1001. },
  1002. {
  1003. 0x0e, 0x1f, 0x2b, 0xfe, 0xf7, 0x78, 0xf5, 0xe5, 0xbe, 0x67, 0x1e, 0xcb,
  1004. 0x49, 0x71, 0x62, 0x4e, 0xc7, 0x84, 0xed, 0x27, 0x32, 0xab, 0xc4, 0xfb,
  1005. 0xb9, 0x8a, 0x8b, 0x48, 0x2f, 0xb6, 0x87, 0x37, 0xdf, 0x91, 0xfd, 0x15,
  1006. 0xac, 0xfa, 0xd2, 0x95, 0x14, 0x03, 0xac, 0x77, 0xc5, 0xca, 0x3e, 0xdf,
  1007. 0xfc, 0x1e, 0x03, 0x39, 0x8a, 0xe6, 0xcf, 0x6a, 0xc2, 0x4a, 0x91, 0x67,
  1008. 0x8d, 0xb5, 0xc7, 0x29, 0x0a, 0xbc, 0x3f, 0xa0, 0x01, 0xaa, 0x02, 0xd5,
  1009. 0x03, 0x99, 0x32, 0x6f, 0x85, 0xd2, 0xb8, 0x94, 0x21, 0x99, 0xa1, 0x57,
  1010. 0x5f, 0x67, 0x46, 0x36, 0x47, 0x40, 0xa5, 0x91, 0x05, 0x52, 0xc6, 0x39,
  1011. 0x80, 0x4d, 0x75, 0x30, 0xc0, 0xd4, 0x13, 0x39, 0x34, 0x5a, 0x58, 0xff,
  1012. 0x00, 0x80, 0xec, 0xcf, 0x17, 0x11, 0x89, 0x51, 0x92, 0xa3, 0x81, 0x7a,
  1013. 0x8d, 0xc3, 0xf0, 0x0f, 0x28, 0xcc, 0x10, 0xcc,
  1014. }
  1015. };
  1016. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1017. result = do_hmac_prng_pr_false_test(18, &vec);
  1018. TC_END_RESULT(result);
  1019. return result;
  1020. }
  1021. unsigned int test_19(void)
  1022. {
  1023. unsigned int result = TC_PASS;
  1024. const struct hmac_prng_test_vector vec = {
  1025. 32,
  1026. 16,
  1027. 32,
  1028. 0,
  1029. 128,
  1030. {
  1031. 0x7b, 0xa0, 0x2a, 0x73, 0x4c, 0x87, 0x44, 0xb1, 0x5e, 0xf8, 0xb4, 0x07,
  1032. 0x4f, 0xe6, 0x39, 0xb3, 0x2e, 0x44, 0x31, 0x76, 0x2a, 0xb5, 0xb7, 0xcd,
  1033. 0x4d, 0x5d, 0xf6, 0x75, 0xea, 0x90, 0x67, 0x2b,
  1034. },
  1035. {
  1036. 0x8a, 0x42, 0x4f, 0x32, 0x10, 0x86, 0x07, 0xc8, 0xf1, 0xf4, 0x5d, 0x97,
  1037. 0xf5, 0x00, 0xee, 0x12,
  1038. },
  1039. {
  1040. 0x3a, 0xd6, 0x27, 0x43, 0x3f, 0x46, 0x51, 0x87, 0xc4, 0x81, 0x41, 0xe3,
  1041. 0x0c, 0x26, 0x78, 0x10, 0x60, 0x91, 0xe7, 0xa6, 0x80, 0x22, 0x9a, 0x53,
  1042. 0x4b, 0x85, 0x1b, 0x8d, 0x46, 0xfe, 0xb9, 0x57,
  1043. },
  1044. {
  1045. 0xd8, 0xf0, 0x2b, 0x59, 0xb6, 0xa3, 0xdd, 0x27, 0x6b, 0xc6, 0x9c, 0xba,
  1046. 0x68, 0xef, 0xcf, 0x11, 0xab, 0x83, 0xea, 0xd1, 0x39, 0x7a, 0xfd, 0x98,
  1047. 0x41, 0x78, 0x6b, 0xd1, 0xbb, 0x5d, 0xa9, 0x7a,
  1048. },
  1049. {
  1050. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1051. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1052. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1053. },
  1054. {
  1055. 0x1f, 0xb9, 0x11, 0x86, 0xba, 0x4b, 0x44, 0x59, 0xd9, 0x94, 0xb4, 0xb9,
  1056. 0xf4, 0xca, 0x25, 0x2c, 0x7b, 0xe6, 0x29, 0x4d, 0x6c, 0xdb, 0x5f, 0xe5,
  1057. 0x6f, 0x8f, 0xf7, 0x84, 0xd4, 0xb1, 0x90, 0xa1, 0xc6, 0x45, 0x6e, 0x0a,
  1058. 0x41, 0x22, 0x3b, 0xbb, 0xdf, 0x83, 0xed, 0x8e, 0x7c, 0xfb, 0xfa, 0x76,
  1059. 0x5d, 0x9d, 0x8b, 0xc7, 0xea, 0x5f, 0x4d, 0x79, 0xea, 0x7e, 0xcc, 0xb4,
  1060. 0x92, 0x80, 0x81, 0xa2, 0x1d, 0xe4, 0xcc, 0xa3, 0x66, 0x20, 0xd6, 0x26,
  1061. 0x7f, 0x55, 0xd9, 0xa3, 0x52, 0xb7, 0x6f, 0xc0, 0xa5, 0x73, 0x75, 0x88,
  1062. 0x41, 0x12, 0xc3, 0x1f, 0x65, 0xff, 0x28, 0xe7, 0x6d, 0x31, 0x56, 0x98,
  1063. 0xc2, 0x9e, 0x6c, 0x4c, 0x05, 0xcb, 0x58, 0xb0, 0xa0, 0x7a, 0xe6, 0x61,
  1064. 0x43, 0xb4, 0xab, 0xc7, 0x8b, 0x9d, 0x25, 0xc7, 0x8b, 0x41, 0x21, 0xe1,
  1065. 0xe4, 0x5b, 0xef, 0x1a, 0x6c, 0x17, 0x93, 0xe2,
  1066. }
  1067. };
  1068. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1069. result = do_hmac_prng_pr_false_test(19, &vec);
  1070. TC_END_RESULT(result);
  1071. return result;
  1072. }
  1073. unsigned int test_20(void)
  1074. {
  1075. unsigned int result = TC_PASS;
  1076. const struct hmac_prng_test_vector vec = {
  1077. 32,
  1078. 16,
  1079. 32,
  1080. 0,
  1081. 128,
  1082. {
  1083. 0x9a, 0x88, 0x65, 0xdf, 0xe0, 0x53, 0xae, 0x77, 0xcb, 0x6a, 0x93, 0x65,
  1084. 0xb8, 0x8f, 0x34, 0xee, 0xc1, 0x7e, 0xa5, 0xcb, 0xfb, 0x0b, 0x1f, 0x04,
  1085. 0xd1, 0x45, 0x9e, 0x7f, 0xa9, 0xc4, 0xf3, 0xcb,
  1086. },
  1087. {
  1088. 0x18, 0x0c, 0x0a, 0x74, 0xda, 0x3e, 0xc4, 0x64, 0xdf, 0x11, 0xfa, 0xc1,
  1089. 0x72, 0xd1, 0xc6, 0x32,
  1090. },
  1091. {
  1092. 0x33, 0x63, 0x72, 0xec, 0x82, 0xd0, 0xd6, 0x8b, 0xef, 0xad, 0x83, 0x69,
  1093. 0x19, 0x66, 0xef, 0x6f, 0xfc, 0x65, 0x10, 0x53, 0x88, 0xeb, 0x2d, 0x6e,
  1094. 0xed, 0x82, 0x6c, 0x22, 0x85, 0x03, 0x7c, 0x77,
  1095. },
  1096. {
  1097. 0x75, 0xb9, 0x51, 0x08, 0xef, 0xf1, 0xfa, 0xbe, 0x83, 0x61, 0x3e, 0x1c,
  1098. 0x4d, 0xe5, 0x75, 0xe7, 0x2a, 0x5c, 0xdc, 0x4b, 0xb9, 0x31, 0x1d, 0xd0,
  1099. 0x06, 0xf9, 0x71, 0xa0, 0x52, 0x38, 0x66, 0x92,
  1100. },
  1101. {
  1102. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1103. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1104. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1105. },
  1106. {
  1107. 0x3c, 0x68, 0x3f, 0x6d, 0x4f, 0x8f, 0x5a, 0x40, 0x18, 0xd0, 0x16, 0x33,
  1108. 0xdf, 0xee, 0x74, 0x26, 0x6a, 0xaa, 0x68, 0xed, 0x6f, 0xc6, 0x49, 0xe8,
  1109. 0x1b, 0x64, 0xdf, 0xdf, 0x5f, 0x75, 0xe7, 0x5d, 0x5c, 0x05, 0x8d, 0x66,
  1110. 0xcf, 0x5f, 0xd0, 0x1a, 0x4f, 0x14, 0x3a, 0x6f, 0xf6, 0x95, 0x51, 0x7a,
  1111. 0x4a, 0x43, 0xbd, 0x3a, 0xdf, 0xd1, 0xfb, 0x2c, 0x28, 0xba, 0x9a, 0x41,
  1112. 0x06, 0x31, 0x40, 0xbe, 0xdb, 0xff, 0xdb, 0x4d, 0x21, 0xb1, 0xac, 0xe1,
  1113. 0x55, 0x0d, 0x59, 0x20, 0x9e, 0xc6, 0x1f, 0x1e, 0x2d, 0xba, 0xcb, 0x2a,
  1114. 0x91, 0x16, 0xa7, 0x9c, 0xb1, 0x41, 0x0b, 0xf2, 0xde, 0xca, 0x52, 0x18,
  1115. 0x08, 0x0a, 0xac, 0xd9, 0xc6, 0x8e, 0x1d, 0x65, 0x57, 0x72, 0x1a, 0x89,
  1116. 0x13, 0xe2, 0x3f, 0x61, 0x7e, 0x30, 0xf2, 0xe5, 0x94, 0xf6, 0x12, 0x67,
  1117. 0xd5, 0xed, 0x81, 0x46, 0x4e, 0xe7, 0x30, 0xb2,
  1118. }
  1119. };
  1120. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1121. result = do_hmac_prng_pr_false_test(20, &vec);
  1122. TC_END_RESULT(result);
  1123. return result;
  1124. }
  1125. unsigned int test_21(void)
  1126. {
  1127. unsigned int result = TC_PASS;
  1128. const struct hmac_prng_test_vector vec = {
  1129. 32,
  1130. 16,
  1131. 32,
  1132. 0,
  1133. 128,
  1134. {
  1135. 0x22, 0xc1, 0xaf, 0x2f, 0x2a, 0x4c, 0x88, 0x5f, 0x06, 0x98, 0x85, 0x67,
  1136. 0xda, 0x9f, 0xc9, 0x0f, 0x34, 0xf8, 0x0f, 0x6d, 0xd5, 0x10, 0x1c, 0x28,
  1137. 0x1b, 0xee, 0xf4, 0x97, 0xa6, 0xa1, 0xb2, 0xf8,
  1138. },
  1139. {
  1140. 0x3f, 0xaf, 0xde, 0xcf, 0x79, 0xa4, 0x17, 0x48, 0x01, 0xf1, 0x33, 0x13,
  1141. 0x16, 0x29, 0x03, 0x7b,
  1142. },
  1143. {
  1144. 0x80, 0x32, 0x7d, 0xac, 0x48, 0x61, 0x11, 0xb8, 0xa8, 0xb2, 0xc8, 0xe8,
  1145. 0x38, 0x1f, 0xb2, 0xd7, 0x13, 0xa6, 0x76, 0x95, 0xc2, 0xe6, 0x60, 0xb2,
  1146. 0xb0, 0xd4, 0xaf, 0x69, 0x6c, 0xc3, 0xe1, 0xde,
  1147. },
  1148. {
  1149. 0xf9, 0x5a, 0x0e, 0x4b, 0xd2, 0x4f, 0x0e, 0x2e, 0x9e, 0x44, 0x4f, 0x51,
  1150. 0x1b, 0x76, 0x32, 0x86, 0x8e, 0xad, 0x0d, 0x5b, 0xb3, 0x84, 0x67, 0x71,
  1151. 0x26, 0x4e, 0x03, 0xf8, 0xab, 0x8e, 0xd0, 0x74,
  1152. },
  1153. {
  1154. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1155. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1156. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1157. },
  1158. {
  1159. 0x77, 0xa7, 0xfe, 0xa2, 0xf3, 0x5a, 0x18, 0x8f, 0x6d, 0x1b, 0xfd, 0xd4,
  1160. 0x9b, 0x56, 0x9d, 0x8c, 0x45, 0xe2, 0xdd, 0x43, 0x1d, 0x35, 0xa1, 0x8c,
  1161. 0x6f, 0x43, 0x2c, 0x72, 0x4f, 0x1e, 0x33, 0xae, 0x92, 0xcb, 0x89, 0xa9,
  1162. 0xcf, 0x91, 0x51, 0x9e, 0x50, 0x70, 0x5a, 0x53, 0x19, 0x9f, 0x5b, 0x57,
  1163. 0x2d, 0xc8, 0x5c, 0x1a, 0xef, 0x8f, 0x28, 0xfb, 0x52, 0xdc, 0x79, 0x86,
  1164. 0x22, 0x8f, 0x66, 0x95, 0x4d, 0x54, 0xed, 0xa8, 0x4a, 0x86, 0x96, 0x2c,
  1165. 0xf2, 0x5c, 0xf7, 0x65, 0xbd, 0x99, 0x49, 0x87, 0x63, 0x49, 0x29, 0x1b,
  1166. 0x1a, 0xae, 0x5f, 0x88, 0xfc, 0xf4, 0xb3, 0x76, 0x91, 0x2d, 0x20, 0x5a,
  1167. 0xdd, 0x4f, 0x53, 0xb2, 0x77, 0x0c, 0x65, 0x79, 0x46, 0xc0, 0xd8, 0x24,
  1168. 0x28, 0x1f, 0x44, 0x15, 0x09, 0x15, 0x3f, 0x48, 0x35, 0x6d, 0x9d, 0x43,
  1169. 0xf8, 0xa9, 0x27, 0xe0, 0x69, 0x3d, 0xb8, 0xfc,
  1170. }
  1171. };
  1172. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1173. result = do_hmac_prng_pr_false_test(21, &vec);
  1174. TC_END_RESULT(result);
  1175. return result;
  1176. }
  1177. unsigned int test_22(void)
  1178. {
  1179. unsigned int result = TC_PASS;
  1180. const struct hmac_prng_test_vector vec = {
  1181. 32,
  1182. 16,
  1183. 32,
  1184. 0,
  1185. 128,
  1186. {
  1187. 0xd0, 0x84, 0x0e, 0x3a, 0x8d, 0x62, 0x9d, 0x5b, 0x88, 0x3d, 0x33, 0xe0,
  1188. 0x53, 0xa3, 0x41, 0xb2, 0x1c, 0x67, 0x4e, 0x67, 0xe1, 0x99, 0x9f, 0x06,
  1189. 0x8c, 0x49, 0x7e, 0xcf, 0xaa, 0xbf, 0xd6, 0xf6,
  1190. },
  1191. {
  1192. 0x07, 0x1d, 0xe7, 0x24, 0x4e, 0xcb, 0x2f, 0xdf, 0x7a, 0xb2, 0x7f, 0x2d,
  1193. 0x84, 0xaa, 0x7b, 0x7a,
  1194. },
  1195. {
  1196. 0x90, 0xd6, 0x09, 0x52, 0x7f, 0xad, 0x96, 0xff, 0xe6, 0x4a, 0xb1, 0x53,
  1197. 0x86, 0x03, 0x46, 0xf3, 0xd2, 0x37, 0xc8, 0x94, 0x05, 0x55, 0xae, 0x17,
  1198. 0xb4, 0x78, 0x42, 0xd8, 0x2d, 0x3b, 0x09, 0x43,
  1199. },
  1200. {
  1201. 0x1d, 0xd1, 0xa8, 0xb5, 0x98, 0x56, 0xc4, 0x9a, 0x38, 0x8f, 0x59, 0x4c,
  1202. 0x5f, 0x42, 0xcc, 0x2e, 0x4a, 0x56, 0xb3, 0xcc, 0xb8, 0xa6, 0x5e, 0x70,
  1203. 0x66, 0xe4, 0x4c, 0x12, 0xf4, 0x34, 0x4d, 0x50,
  1204. },
  1205. {
  1206. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1207. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1208. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1209. },
  1210. {
  1211. 0x7a, 0xb2, 0x8a, 0x9b, 0x2d, 0x3a, 0xe9, 0x99, 0x19, 0x55, 0x53, 0xe6,
  1212. 0x55, 0x0c, 0xce, 0xd4, 0xc2, 0xda, 0xcc, 0xbe, 0x7e, 0xc9, 0xdc, 0xbb,
  1213. 0x0d, 0x46, 0x7f, 0xab, 0xba, 0x18, 0x5b, 0x72, 0x7f, 0xbf, 0xd9, 0x83,
  1214. 0x02, 0x42, 0xcd, 0x09, 0x8f, 0x4d, 0xb3, 0xcf, 0x4a, 0x85, 0xe8, 0xbf,
  1215. 0x8e, 0x8d, 0x59, 0x74, 0xb6, 0x2b, 0x28, 0x55, 0x09, 0x22, 0xb3, 0x2e,
  1216. 0xd5, 0xbf, 0xc1, 0xa5, 0x22, 0xb6, 0x60, 0x5c, 0xf9, 0x3b, 0xf8, 0xd9,
  1217. 0x0b, 0xde, 0xc1, 0xc5, 0xb9, 0xe5, 0x9c, 0x6f, 0xc3, 0x7a, 0x81, 0x7d,
  1218. 0x43, 0x70, 0x68, 0xa8, 0x72, 0x54, 0xbe, 0x1f, 0x7c, 0x46, 0x18, 0xad,
  1219. 0xa4, 0x6f, 0xbc, 0x3a, 0x2e, 0xfb, 0x02, 0xe4, 0x45, 0x24, 0xe2, 0x1d,
  1220. 0x91, 0xbe, 0x75, 0x34, 0xcf, 0x05, 0xfb, 0xfd, 0x85, 0x83, 0x04, 0xb7,
  1221. 0x06, 0xd6, 0xa9, 0x1e, 0xa1, 0xcc, 0x6a, 0xd5,
  1222. }
  1223. };
  1224. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1225. result = do_hmac_prng_pr_false_test(22, &vec);
  1226. TC_END_RESULT(result);
  1227. return result;
  1228. }
  1229. unsigned int test_23(void)
  1230. {
  1231. unsigned int result = TC_PASS;
  1232. const struct hmac_prng_test_vector vec = {
  1233. 32,
  1234. 16,
  1235. 32,
  1236. 0,
  1237. 128,
  1238. {
  1239. 0x2e, 0x2d, 0xd5, 0x68, 0x69, 0x10, 0x44, 0x92, 0x76, 0x7a, 0x59, 0x77,
  1240. 0x86, 0x52, 0x83, 0x19, 0x19, 0xe1, 0xc8, 0xb9, 0x70, 0xf8, 0x4e, 0x82,
  1241. 0x4a, 0xe4, 0x11, 0x65, 0x97, 0xa0, 0xab, 0x7f,
  1242. },
  1243. {
  1244. 0x01, 0xc4, 0x2a, 0x7e, 0x98, 0x36, 0x41, 0xde, 0x46, 0xc8, 0x2f, 0xd0,
  1245. 0x9b, 0x4f, 0x2f, 0x76,
  1246. },
  1247. {
  1248. 0xbc, 0xd9, 0xe1, 0x50, 0x8f, 0xcc, 0x22, 0x82, 0x0a, 0x8b, 0xe0, 0x71,
  1249. 0x80, 0xfe, 0xa5, 0x04, 0x53, 0x67, 0x33, 0x3b, 0x56, 0x9e, 0x11, 0x1b,
  1250. 0x01, 0x1c, 0xd5, 0x7d, 0xc1, 0x85, 0x87, 0x65,
  1251. },
  1252. {
  1253. 0x73, 0x06, 0x50, 0x7c, 0xd3, 0xca, 0x7e, 0xec, 0x66, 0x7e, 0x64, 0x0d,
  1254. 0x27, 0x0c, 0xfb, 0xb0, 0x33, 0x06, 0x3d, 0x97, 0x52, 0x0b, 0x6b, 0x7e,
  1255. 0x38, 0xff, 0x3c, 0xea, 0x0e, 0x79, 0xd1, 0x2b,
  1256. },
  1257. {
  1258. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1259. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1260. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1261. },
  1262. {
  1263. 0xb9, 0x15, 0x72, 0x6c, 0x7b, 0x8c, 0x5d, 0xc3, 0x97, 0x5f, 0x1a, 0x33,
  1264. 0x46, 0x84, 0xb9, 0x73, 0xab, 0xf6, 0xa9, 0x49, 0x5d, 0x93, 0x00, 0x88,
  1265. 0xcf, 0x5d, 0x07, 0x15, 0x48, 0xe4, 0xfd, 0x29, 0xa6, 0x7b, 0x55, 0xcc,
  1266. 0x56, 0x1e, 0xd6, 0x94, 0x9a, 0xd2, 0x81, 0x50, 0xa9, 0xfb, 0x43, 0x07,
  1267. 0xc1, 0xfa, 0x5f, 0x78, 0x3a, 0x7e, 0xa8, 0x72, 0xe8, 0xd7, 0xc7, 0xe6,
  1268. 0x7f, 0xf0, 0xc2, 0x90, 0x60, 0x81, 0xee, 0x91, 0x57, 0x37, 0xd8, 0x13,
  1269. 0xc2, 0x5b, 0xe5, 0xc3, 0x0b, 0x95, 0x2a, 0x36, 0xf3, 0x93, 0xe6, 0xba,
  1270. 0xa5, 0x6a, 0xb0, 0x1a, 0xdc, 0x2b, 0x47, 0x76, 0xad, 0x7b, 0x5d, 0x03,
  1271. 0x6a, 0x53, 0x65, 0x98, 0x77, 0xc7, 0xa4, 0xe5, 0x22, 0x0a, 0x89, 0x7d,
  1272. 0x6c, 0x07, 0x99, 0xaf, 0x37, 0xbe, 0xee, 0xd9, 0x11, 0x73, 0xfb, 0xe9,
  1273. 0xc6, 0x13, 0xc3, 0xb6, 0xb9, 0xbb, 0x28, 0xe5,
  1274. }
  1275. };
  1276. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1277. result = do_hmac_prng_pr_false_test(23, &vec);
  1278. TC_END_RESULT(result);
  1279. return result;
  1280. }
  1281. unsigned int test_24(void)
  1282. {
  1283. unsigned int result = TC_PASS;
  1284. const struct hmac_prng_test_vector vec = {
  1285. 32,
  1286. 16,
  1287. 32,
  1288. 0,
  1289. 128,
  1290. {
  1291. 0xd1, 0xaa, 0xb0, 0xf1, 0x6b, 0xd4, 0x7a, 0x5c, 0xcd, 0x67, 0xc2, 0x2e,
  1292. 0x09, 0x4d, 0xaa, 0x37, 0x35, 0xea, 0xe2, 0x1a, 0xa5, 0x7f, 0x0b, 0xcd,
  1293. 0x9e, 0x05, 0x3d, 0x9d, 0x0d, 0x54, 0x5c, 0xb8,
  1294. },
  1295. {
  1296. 0x19, 0x93, 0x10, 0xdf, 0xe1, 0xb0, 0x12, 0x65, 0xb8, 0xc0, 0xd2, 0xb4,
  1297. 0x6d, 0x6c, 0x7c, 0x9f,
  1298. },
  1299. {
  1300. 0x62, 0x5b, 0x4b, 0x8f, 0x4d, 0xe7, 0x2e, 0xa9, 0xcb, 0x6f, 0x70, 0x55,
  1301. 0x63, 0x22, 0xdc, 0x2a, 0x19, 0xd6, 0xb2, 0xb3, 0x2d, 0xe6, 0x23, 0xf5,
  1302. 0x57, 0xe4, 0x19, 0xa0, 0x84, 0xba, 0x60, 0xfd,
  1303. },
  1304. {
  1305. 0xf5, 0x0c, 0xab, 0xae, 0x4e, 0x06, 0x0f, 0x39, 0x71, 0x09, 0x6b, 0x78,
  1306. 0xe5, 0x50, 0xcd, 0xa2, 0x83, 0x7a, 0x26, 0xa6, 0x93, 0xd9, 0x05, 0xdb,
  1307. 0x2d, 0x99, 0x2d, 0x58, 0x9b, 0x26, 0x8f, 0x44,
  1308. },
  1309. {
  1310. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1311. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1312. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1313. },
  1314. {
  1315. 0x98, 0x7e, 0x1f, 0xdf, 0xe0, 0x04, 0xc6, 0x19, 0xcf, 0x1e, 0x90, 0x34,
  1316. 0x57, 0x67, 0x07, 0xec, 0xcd, 0x84, 0x94, 0x00, 0xe1, 0x9c, 0x87, 0xa1,
  1317. 0xfe, 0xf5, 0xb0, 0x17, 0x9e, 0xc5, 0x1c, 0x42, 0xa2, 0xf8, 0xc4, 0x5d,
  1318. 0x79, 0x42, 0xd0, 0x02, 0x3a, 0x02, 0x3c, 0x89, 0xf1, 0x88, 0xb2, 0x63,
  1319. 0x43, 0x62, 0x70, 0x39, 0x85, 0x69, 0x53, 0x69, 0x86, 0x33, 0x22, 0xf5,
  1320. 0x86, 0x19, 0xc5, 0x0a, 0x73, 0x85, 0xa2, 0xdc, 0x91, 0xfc, 0x78, 0xf9,
  1321. 0x4b, 0x59, 0xf0, 0x13, 0x1d, 0xc2, 0xb5, 0x6a, 0x0d, 0x7c, 0x69, 0x9d,
  1322. 0x42, 0x72, 0x85, 0xda, 0x1c, 0x10, 0x4b, 0x0a, 0xd1, 0x73, 0x9d, 0xa1,
  1323. 0x0d, 0x80, 0x71, 0xc2, 0x39, 0x93, 0x78, 0x70, 0x45, 0xdc, 0x21, 0xf0,
  1324. 0x07, 0x0e, 0x1e, 0x9a, 0xa1, 0x65, 0x8f, 0xc8, 0xe3, 0xad, 0xd7, 0x3d,
  1325. 0xac, 0x72, 0x62, 0xe8, 0x0e, 0x0a, 0xa2, 0xee,
  1326. }
  1327. };
  1328. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1329. result = do_hmac_prng_pr_false_test(24, &vec);
  1330. TC_END_RESULT(result);
  1331. return result;
  1332. }
  1333. unsigned int test_25(void)
  1334. {
  1335. unsigned int result = TC_PASS;
  1336. const struct hmac_prng_test_vector vec = {
  1337. 32,
  1338. 16,
  1339. 32,
  1340. 0,
  1341. 128,
  1342. {
  1343. 0x44, 0x94, 0x80, 0xea, 0xa1, 0x00, 0xaf, 0xf6, 0xf4, 0x8d, 0xc6, 0x28,
  1344. 0x6a, 0x5a, 0x81, 0xb9, 0x72, 0x8b, 0x08, 0x48, 0x64, 0xf7, 0x8a, 0x9d,
  1345. 0xa9, 0x8f, 0x60, 0x6a, 0x00, 0xa6, 0xa4, 0x1f,
  1346. },
  1347. {
  1348. 0xe5, 0x3c, 0x6c, 0x5a, 0xc3, 0xda, 0x9f, 0x47, 0x26, 0x38, 0x9a, 0x03,
  1349. 0xf9, 0x7b, 0xb6, 0x40,
  1350. },
  1351. {
  1352. 0x6b, 0x8f, 0xed, 0xc0, 0x84, 0xd8, 0xe2, 0x8d, 0x33, 0x3a, 0xef, 0x6d,
  1353. 0xb3, 0x70, 0x2b, 0x63, 0x51, 0xf0, 0xd2, 0x4e, 0x30, 0x90, 0x8c, 0xcc,
  1354. 0xb6, 0x37, 0x94, 0x28, 0x26, 0x55, 0x88, 0x6b,
  1355. },
  1356. {
  1357. 0x73, 0xa6, 0xd6, 0x4e, 0x19, 0x66, 0xae, 0x32, 0x43, 0x88, 0xdc, 0x12,
  1358. 0xc1, 0x45, 0x44, 0xe9, 0xdc, 0x5a, 0xe4, 0xfc, 0xb3, 0x31, 0xe9, 0x9d,
  1359. 0x35, 0x0c, 0x45, 0x6f, 0xf1, 0x6f, 0x9a, 0xa0,
  1360. },
  1361. {
  1362. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1363. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1364. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1365. },
  1366. {
  1367. 0xa0, 0x69, 0x12, 0xd3, 0x62, 0xda, 0x7e, 0xb2, 0x55, 0x98, 0x85, 0x7f,
  1368. 0x6d, 0x65, 0x34, 0x4c, 0x3e, 0x23, 0xec, 0x3d, 0xeb, 0x80, 0xc6, 0xe4,
  1369. 0x31, 0x58, 0x84, 0x5b, 0x95, 0xea, 0xec, 0xa2, 0x41, 0xc0, 0xbb, 0xbd,
  1370. 0x67, 0xac, 0x38, 0x5e, 0x24, 0x69, 0x34, 0x44, 0x45, 0x5c, 0xc1, 0xc2,
  1371. 0xc0, 0x8c, 0x11, 0x34, 0xd9, 0x56, 0xb8, 0xbc, 0x93, 0xb2, 0x8b, 0xe9,
  1372. 0xc2, 0xd3, 0x32, 0x2b, 0x3e, 0x09, 0x25, 0x29, 0x79, 0xdf, 0xb8, 0xd3,
  1373. 0x9d, 0x04, 0xc9, 0x4f, 0x81, 0xbe, 0xbd, 0xa5, 0xc7, 0x31, 0x10, 0x60,
  1374. 0x5a, 0x23, 0x7b, 0x56, 0x12, 0x16, 0xbd, 0xa9, 0xee, 0x9b, 0xde, 0xe1,
  1375. 0xcc, 0x0c, 0x77, 0x28, 0xbc, 0xc8, 0x30, 0x46, 0x82, 0x33, 0x4c, 0xa9,
  1376. 0x44, 0xe4, 0x67, 0xa2, 0x7a, 0x85, 0x31, 0x3f, 0xa5, 0x39, 0x5a, 0x9c,
  1377. 0x79, 0x0e, 0x35, 0xde, 0xfd, 0x2e, 0xdb, 0x12,
  1378. }
  1379. };
  1380. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1381. result = do_hmac_prng_pr_false_test(25, &vec);
  1382. TC_END_RESULT(result);
  1383. return result;
  1384. }
  1385. unsigned int test_26(void)
  1386. {
  1387. unsigned int result = TC_PASS;
  1388. const struct hmac_prng_test_vector vec = {
  1389. 32,
  1390. 16,
  1391. 32,
  1392. 0,
  1393. 128,
  1394. {
  1395. 0x9a, 0x61, 0x74, 0x16, 0x6e, 0x97, 0xaa, 0x49, 0x81, 0xdd, 0xf5, 0x80,
  1396. 0xbc, 0x01, 0xc9, 0x67, 0x54, 0xb9, 0xf0, 0xba, 0x04, 0x27, 0x50, 0xaa,
  1397. 0xbf, 0xda, 0x1c, 0xff, 0xe5, 0x6e, 0x85, 0x81,
  1398. },
  1399. {
  1400. 0xd7, 0x51, 0x2f, 0xf6, 0xb7, 0xdb, 0x7c, 0xe1, 0x41, 0xb2, 0xbb, 0x01,
  1401. 0xdc, 0xd0, 0x42, 0x5e,
  1402. },
  1403. {
  1404. 0xed, 0x75, 0x28, 0x8f, 0x23, 0x27, 0x5f, 0x94, 0x22, 0x44, 0x4d, 0xa5,
  1405. 0xd3, 0xb5, 0x3c, 0xcb, 0x3c, 0x4a, 0xc8, 0xac, 0xfb, 0x65, 0x9a, 0x1e,
  1406. 0x9b, 0x76, 0x55, 0xc2, 0xdb, 0x52, 0xf8, 0x79,
  1407. },
  1408. {
  1409. 0x68, 0x88, 0xb9, 0x27, 0x7e, 0x57, 0xdc, 0x57, 0x66, 0x3d, 0x40, 0x2e,
  1410. 0xba, 0x8d, 0x03, 0xcf, 0x56, 0xa0, 0x70, 0xdc, 0x86, 0x8e, 0x6a, 0x12,
  1411. 0x8b, 0x18, 0x04, 0x00, 0x02, 0xba, 0xf6, 0x90,
  1412. },
  1413. {
  1414. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1415. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1416. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1417. },
  1418. {
  1419. 0x03, 0x51, 0x9d, 0xfb, 0x2f, 0xf8, 0x8c, 0xc2, 0xb5, 0x3e, 0xec, 0xc4,
  1420. 0x8a, 0xe2, 0xa1, 0x8d, 0xdc, 0xf9, 0x1a, 0x5d, 0x69, 0xd5, 0xae, 0xfc,
  1421. 0xdd, 0xa8, 0x44, 0x4e, 0x6d, 0xf7, 0x90, 0xa5, 0x24, 0x0e, 0x67, 0xb2,
  1422. 0xa4, 0xde, 0x75, 0xb4, 0xbb, 0x8a, 0x31, 0xf0, 0xf8, 0xae, 0xb5, 0xe7,
  1423. 0x85, 0xff, 0xb7, 0xa1, 0x34, 0x1b, 0xb5, 0x2f, 0xe0, 0x0a, 0x05, 0xee,
  1424. 0x66, 0xfa, 0x2d, 0x44, 0xea, 0x99, 0x56, 0xe0, 0x55, 0xf9, 0xff, 0xa6,
  1425. 0x64, 0x7c, 0x3b, 0xfe, 0x85, 0x1a, 0xb3, 0x64, 0xad, 0xe7, 0x1a, 0x0d,
  1426. 0x35, 0x6d, 0xe7, 0x10, 0xdd, 0xaf, 0xb7, 0x62, 0x2b, 0x1d, 0xa1, 0xbc,
  1427. 0x53, 0xfd, 0x4d, 0x32, 0x10, 0x40, 0x72, 0x89, 0xc6, 0x8d, 0x8a, 0xeb,
  1428. 0x34, 0x6b, 0xf1, 0x58, 0x06, 0xdb, 0xe7, 0x87, 0xe7, 0x81, 0xb9, 0x4f,
  1429. 0x63, 0xda, 0x3e, 0x1f, 0x61, 0xb5, 0xac, 0x60,
  1430. }
  1431. };
  1432. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1433. result = do_hmac_prng_pr_false_test(26, &vec);
  1434. TC_END_RESULT(result);
  1435. return result;
  1436. }
  1437. unsigned int test_27(void)
  1438. {
  1439. unsigned int result = TC_PASS;
  1440. const struct hmac_prng_test_vector vec = {
  1441. 32,
  1442. 16,
  1443. 32,
  1444. 0,
  1445. 128,
  1446. {
  1447. 0x9c, 0x6a, 0xe1, 0x00, 0x2e, 0xe1, 0xb0, 0xad, 0xd0, 0xbe, 0x56, 0x3c,
  1448. 0xe5, 0x0f, 0x89, 0x9d, 0xa9, 0x36, 0xe1, 0x3e, 0xfa, 0x62, 0x0d, 0x08,
  1449. 0xc2, 0x68, 0x8c, 0x19, 0x25, 0x14, 0x76, 0x3a,
  1450. },
  1451. {
  1452. 0xfd, 0xe7, 0xdb, 0x51, 0x60, 0xc7, 0x30, 0x44, 0xbe, 0x73, 0xe9, 0xd4,
  1453. 0xc1, 0xb2, 0x2d, 0x86,
  1454. },
  1455. {
  1456. 0x8f, 0xda, 0xae, 0xff, 0xd6, 0x4e, 0x53, 0xf7, 0xb4, 0x37, 0x4d, 0x90,
  1457. 0x2d, 0x44, 0x12, 0x09, 0x96, 0x4e, 0x12, 0xb6, 0x5d, 0x29, 0xaf, 0xec,
  1458. 0x25, 0x8e, 0x65, 0xdb, 0x6d, 0xe1, 0x67, 0xca,
  1459. },
  1460. {
  1461. 0xbc, 0xc2, 0x8f, 0xd5, 0x8e, 0x39, 0x7f, 0x53, 0xf4, 0x94, 0xad, 0x81,
  1462. 0x32, 0xdf, 0x82, 0xc5, 0xd8, 0xc4, 0xc2, 0x2e, 0xa0, 0xb7, 0x13, 0x9b,
  1463. 0xd8, 0x1e, 0xeb, 0xa6, 0x56, 0x67, 0xbb, 0x69,
  1464. },
  1465. {
  1466. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1467. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1468. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1469. },
  1470. {
  1471. 0x02, 0x1d, 0x93, 0x8c, 0x9b, 0x4d, 0xb7, 0x80, 0xc7, 0xd8, 0x13, 0x4a,
  1472. 0xef, 0xf1, 0x05, 0x3e, 0x5b, 0x88, 0x43, 0x37, 0x0b, 0x8a, 0xe9, 0xa6,
  1473. 0x74, 0x9f, 0xca, 0x71, 0x99, 0xd8, 0x09, 0x81, 0x0f, 0x1b, 0xc8, 0xdf,
  1474. 0xa4, 0x94, 0x26, 0x47, 0x0c, 0x30, 0xc3, 0x61, 0x6f, 0x90, 0x3e, 0x35,
  1475. 0xfb, 0xac, 0xb2, 0x34, 0x20, 0xa3, 0x2f, 0x1b, 0xee, 0x56, 0x7c, 0xc3,
  1476. 0x23, 0x00, 0xf7, 0x04, 0x24, 0x6d, 0xdc, 0x02, 0x17, 0xf2, 0x36, 0xef,
  1477. 0x52, 0xc3, 0xec, 0x9e, 0x24, 0x33, 0xca, 0x66, 0xf0, 0x5c, 0x25, 0x72,
  1478. 0x1f, 0x76, 0x61, 0xc4, 0x3f, 0x22, 0xc1, 0xa1, 0x25, 0xed, 0x5d, 0xb5,
  1479. 0x31, 0xbd, 0x08, 0x36, 0xeb, 0x43, 0x5c, 0x27, 0xee, 0xfc, 0x74, 0x24,
  1480. 0xce, 0x9d, 0x84, 0x5e, 0x1d, 0x4c, 0xc4, 0xc5, 0x03, 0x09, 0x7b, 0x4f,
  1481. 0xfc, 0xa7, 0x88, 0xe6, 0x74, 0xa5, 0xcb, 0x53,
  1482. }
  1483. };
  1484. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1485. result = do_hmac_prng_pr_false_test(27, &vec);
  1486. TC_END_RESULT(result);
  1487. return result;
  1488. }
  1489. unsigned int test_28(void)
  1490. {
  1491. unsigned int result = TC_PASS;
  1492. const struct hmac_prng_test_vector vec = {
  1493. 32,
  1494. 16,
  1495. 32,
  1496. 0,
  1497. 128,
  1498. {
  1499. 0xfe, 0x96, 0xa8, 0x5b, 0x69, 0xd4, 0x6b, 0x54, 0x09, 0x18, 0x92, 0x7b,
  1500. 0xb6, 0x09, 0xdc, 0x57, 0x64, 0x2e, 0xea, 0xef, 0xd4, 0x6b, 0xb5, 0xda,
  1501. 0x21, 0x63, 0xa0, 0xbc, 0x60, 0x29, 0x4b, 0x58,
  1502. },
  1503. {
  1504. 0x22, 0x19, 0x5a, 0x41, 0x0d, 0x24, 0xdb, 0x45, 0x58, 0x94, 0x48, 0xdf,
  1505. 0xe9, 0x79, 0xd3, 0xfd,
  1506. },
  1507. {
  1508. 0x20, 0xf6, 0x98, 0x83, 0x3a, 0x44, 0x72, 0xfd, 0x7b, 0x78, 0xfb, 0x9b,
  1509. 0x0c, 0x4e, 0xb6, 0x86, 0x04, 0xf1, 0x66, 0xa2, 0x69, 0x4c, 0x4a, 0xf4,
  1510. 0x8d, 0xac, 0x2b, 0x23, 0x76, 0x79, 0x0e, 0x1e,
  1511. },
  1512. {
  1513. 0x09, 0xcb, 0x87, 0x08, 0x79, 0xd3, 0xf7, 0x34, 0x21, 0x4f, 0x6a, 0x4b,
  1514. 0xd2, 0xe0, 0x8c, 0x62, 0xa2, 0xa9, 0x54, 0xbe, 0xbe, 0x55, 0x94, 0x16,
  1515. 0xd8, 0xc3, 0x55, 0x1a, 0xaf, 0xe7, 0x1d, 0x6a,
  1516. },
  1517. {
  1518. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1519. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1520. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1521. },
  1522. {
  1523. 0xd3, 0xe9, 0x6d, 0xbe, 0x29, 0xe1, 0xfc, 0xb8, 0xed, 0x83, 0xb1, 0x9d,
  1524. 0xbf, 0xb2, 0x40, 0xe6, 0xf4, 0x16, 0x79, 0xfb, 0xe8, 0x38, 0x53, 0xaa,
  1525. 0x71, 0x44, 0x66, 0x17, 0xe6, 0x3e, 0x5a, 0xf7, 0x8c, 0xf9, 0x8b, 0x33,
  1526. 0x1d, 0x15, 0xbc, 0xcb, 0x8c, 0x67, 0x3c, 0x4e, 0x5d, 0x5d, 0xce, 0xc4,
  1527. 0x67, 0xa1, 0xfe, 0x26, 0xa6, 0xcd, 0x16, 0x96, 0xd0, 0xc9, 0xbc, 0x49,
  1528. 0xf7, 0x81, 0x39, 0xd0, 0x51, 0x28, 0x7d, 0xf7, 0xf3, 0xae, 0x0d, 0xbb,
  1529. 0x4b, 0xbf, 0x58, 0x1c, 0xb8, 0x21, 0x19, 0x31, 0x06, 0x3c, 0x3f, 0x46,
  1530. 0x12, 0xce, 0xd5, 0x3f, 0x59, 0xd1, 0xb4, 0xeb, 0xb8, 0x75, 0x72, 0x91,
  1531. 0x39, 0xf5, 0xd2, 0xa7, 0xd6, 0x06, 0x42, 0xe8, 0xf2, 0x83, 0x5e, 0xed,
  1532. 0x88, 0x8b, 0x7e, 0x3e, 0x49, 0xc0, 0xdf, 0xfd, 0x01, 0x2c, 0xd7, 0x46,
  1533. 0xab, 0xfa, 0x3e, 0x1c, 0x5c, 0x23, 0x08, 0xc6,
  1534. }
  1535. };
  1536. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1537. result = do_hmac_prng_pr_false_test(28, &vec);
  1538. TC_END_RESULT(result);
  1539. return result;
  1540. }
  1541. unsigned int test_29(void)
  1542. {
  1543. unsigned int result = TC_PASS;
  1544. const struct hmac_prng_test_vector vec = {
  1545. 32,
  1546. 16,
  1547. 32,
  1548. 0,
  1549. 128,
  1550. {
  1551. 0xa4, 0xfd, 0x69, 0x3f, 0xf0, 0xa8, 0xaf, 0x24, 0xbc, 0xec, 0x35, 0x2d,
  1552. 0x31, 0x96, 0x54, 0x9f, 0xd0, 0xda, 0x5e, 0xe5, 0xd9, 0x9c, 0xa5, 0x84,
  1553. 0x16, 0xca, 0x03, 0xce, 0x4c, 0x50, 0xf3, 0x8e,
  1554. },
  1555. {
  1556. 0x8c, 0xd6, 0x7f, 0x2b, 0xf7, 0x1d, 0x43, 0x66, 0xce, 0x61, 0x39, 0x66,
  1557. 0x42, 0x53, 0x1f, 0xf5,
  1558. },
  1559. {
  1560. 0x36, 0x89, 0x69, 0xc1, 0x5a, 0x48, 0x49, 0xd7, 0x59, 0x3b, 0xe8, 0xb1,
  1561. 0x62, 0x11, 0x3b, 0x92, 0x98, 0xa5, 0x35, 0xc1, 0x48, 0xff, 0x66, 0x8a,
  1562. 0x9e, 0x8b, 0x14, 0x7f, 0xb3, 0xaf, 0x4e, 0xba,
  1563. },
  1564. {
  1565. 0x83, 0xd2, 0xbe, 0x9a, 0x0d, 0x74, 0xe6, 0xa4, 0x21, 0x59, 0xae, 0x63,
  1566. 0x0a, 0xce, 0xbf, 0x4e, 0x15, 0x27, 0x1e, 0xf7, 0xf1, 0x4f, 0x3d, 0xe1,
  1567. 0x47, 0x52, 0xbe, 0x0e, 0x0e, 0x82, 0x2b, 0x11,
  1568. },
  1569. {
  1570. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1571. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1572. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1573. },
  1574. {
  1575. 0xe9, 0x18, 0x8f, 0xc0, 0xea, 0xec, 0x74, 0xb2, 0x60, 0x8e, 0x21, 0xe3,
  1576. 0xa4, 0x0b, 0xe9, 0x4a, 0xaf, 0x4a, 0xe0, 0x8e, 0xb6, 0x84, 0xde, 0x8f,
  1577. 0x8b, 0xba, 0x2d, 0x5f, 0xd3, 0xb0, 0x73, 0xaa, 0x55, 0x31, 0xc9, 0x38,
  1578. 0xc0, 0xfc, 0x62, 0x8d, 0xa6, 0x57, 0x25, 0xc5, 0x4b, 0x5c, 0x68, 0xbb,
  1579. 0x91, 0xd7, 0xd3, 0x26, 0x56, 0x5e, 0x96, 0x68, 0x5e, 0x0a, 0x4e, 0x7b,
  1580. 0x22, 0x0c, 0x50, 0xe0, 0xca, 0xf1, 0x62, 0x8e, 0xdb, 0xa5, 0xbd, 0x75,
  1581. 0x5b, 0x31, 0x89, 0x4f, 0x8c, 0xb9, 0x0a, 0xfa, 0x76, 0xe8, 0x8c, 0x5e,
  1582. 0xb9, 0xe6, 0x1b, 0x49, 0x32, 0x44, 0x4c, 0x13, 0x97, 0xde, 0xe3, 0xe3,
  1583. 0x22, 0x41, 0xa3, 0xfb, 0x70, 0xa3, 0x92, 0x9e, 0x49, 0xf6, 0xda, 0x02,
  1584. 0xee, 0xa5, 0x48, 0x12, 0xab, 0xb3, 0xd6, 0xb5, 0xce, 0xe1, 0x8f, 0x03,
  1585. 0xaf, 0x1e, 0x0b, 0x49, 0x58, 0x43, 0x0a, 0xb3,
  1586. }
  1587. };
  1588. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1589. result = do_hmac_prng_pr_false_test(29, &vec);
  1590. TC_END_RESULT(result);
  1591. return result;
  1592. }
  1593. unsigned int test_30(void)
  1594. {
  1595. unsigned int result = TC_PASS;
  1596. const struct hmac_prng_test_vector vec = {
  1597. 32,
  1598. 16,
  1599. 32,
  1600. 0,
  1601. 128,
  1602. {
  1603. 0x25, 0x4f, 0xf5, 0x68, 0x7a, 0x6d, 0xad, 0x3f, 0x1d, 0x23, 0x7d, 0xc7,
  1604. 0x62, 0xf5, 0x8d, 0x24, 0xef, 0x2e, 0x2c, 0x08, 0x4d, 0x0a, 0x48, 0xd2,
  1605. 0x6a, 0x3d, 0xc8, 0x1e, 0x54, 0x90, 0xcd, 0xa3,
  1606. },
  1607. {
  1608. 0xf2, 0xec, 0x39, 0x2a, 0xcc, 0xa4, 0x91, 0xe0, 0x3c, 0xe4, 0x7b, 0x95,
  1609. 0x96, 0x3a, 0x49, 0xfc,
  1610. },
  1611. {
  1612. 0xf8, 0x06, 0xb9, 0xb4, 0xa5, 0x66, 0x82, 0xc6, 0x1b, 0x55, 0xcb, 0x6a,
  1613. 0x33, 0x4c, 0xaf, 0x87, 0xff, 0xe1, 0x35, 0xad, 0xfe, 0xa6, 0xd0, 0xc3,
  1614. 0xfc, 0x22, 0xb3, 0x98, 0x98, 0xfb, 0xd0, 0x78,
  1615. },
  1616. {
  1617. 0xb8, 0x49, 0x4b, 0x1c, 0x1f, 0x17, 0x52, 0xfb, 0x6f, 0x80, 0xd7, 0x32,
  1618. 0xa8, 0x9b, 0x08, 0x11, 0x58, 0x57, 0xf7, 0xcc, 0x96, 0xe7, 0xdf, 0xf0,
  1619. 0x5e, 0xbb, 0x82, 0x27, 0x06, 0x88, 0x99, 0x17,
  1620. },
  1621. {
  1622. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1623. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1624. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1625. },
  1626. {
  1627. 0x0e, 0x52, 0x7e, 0x00, 0x49, 0x4d, 0x55, 0x56, 0x4f, 0x9d, 0x9b, 0x28,
  1628. 0xe7, 0x11, 0x0f, 0x9a, 0x61, 0xce, 0x36, 0xc8, 0x83, 0xb5, 0xbe, 0x2d,
  1629. 0xcb, 0x05, 0x54, 0x44, 0x16, 0x4c, 0xdd, 0xdd, 0x1a, 0x9f, 0x27, 0x31,
  1630. 0x71, 0x6f, 0x22, 0xd6, 0xff, 0x47, 0x6c, 0xe4, 0x13, 0xc7, 0x7a, 0xbf,
  1631. 0xc0, 0xe9, 0x46, 0x87, 0x1d, 0x54, 0x81, 0x34, 0x5c, 0x2e, 0x97, 0xb4,
  1632. 0xbf, 0xdd, 0x12, 0xac, 0x03, 0xdf, 0x60, 0x6f, 0xc5, 0x6b, 0xdb, 0x99,
  1633. 0xac, 0x7b, 0x71, 0xa6, 0x9b, 0x5b, 0x91, 0x60, 0x37, 0x3b, 0xbe, 0xc3,
  1634. 0xe9, 0xdd, 0xe4, 0x77, 0x18, 0x0a, 0xf4, 0x54, 0xe7, 0xac, 0xc6, 0xbc,
  1635. 0x58, 0xdc, 0x0a, 0xfb, 0x42, 0x81, 0xc0, 0xde, 0x43, 0x54, 0xc1, 0xbf,
  1636. 0x59, 0x90, 0x54, 0xe3, 0x80, 0x0c, 0x6d, 0x60, 0xd8, 0x92, 0x85, 0x88,
  1637. 0x65, 0xb5, 0x36, 0x1f, 0x50, 0xbf, 0xca, 0x9b,
  1638. }
  1639. };
  1640. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1641. result = do_hmac_prng_pr_false_test(30, &vec);
  1642. TC_END_RESULT(result);
  1643. return result;
  1644. }
  1645. unsigned int test_31(void)
  1646. {
  1647. unsigned int result = TC_PASS;
  1648. const struct hmac_prng_test_vector vec = {
  1649. 32,
  1650. 16,
  1651. 0,
  1652. 0,
  1653. 128,
  1654. {
  1655. 0xff, 0x0c, 0xdd, 0x55, 0x5c, 0x60, 0x46, 0x47, 0x60, 0xb2, 0x89, 0xb7,
  1656. 0xbc, 0x1f, 0x81, 0x1a, 0x41, 0xff, 0xf7, 0x2d, 0xe5, 0x90, 0x83, 0x85,
  1657. 0x8c, 0x02, 0x0a, 0x10, 0x53, 0xbd, 0xc7, 0x4a,
  1658. },
  1659. {
  1660. 0x7b, 0xc0, 0x99, 0x28, 0x5a, 0xd5, 0x62, 0x19, 0x93, 0xb6, 0x39, 0xc4,
  1661. 0xa9, 0x4c, 0x37, 0x6b,
  1662. },
  1663. {
  1664. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1665. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1666. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1667. },
  1668. {
  1669. 0x14, 0xfc, 0x6c, 0x9b, 0x17, 0x8d, 0xb6, 0x44, 0xa8, 0xcd, 0x71, 0x30,
  1670. 0xa4, 0xcf, 0x05, 0x16, 0x78, 0xc8, 0xf4, 0xfa, 0x8f, 0x24, 0xc2, 0x7b,
  1671. 0x0a, 0x53, 0x13, 0x38, 0xa5, 0xce, 0x85, 0x89,
  1672. },
  1673. {
  1674. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1675. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1676. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1677. },
  1678. {
  1679. 0x2f, 0x26, 0x20, 0x34, 0x7b, 0xdd, 0xca, 0xa2, 0x94, 0x36, 0x85, 0x34,
  1680. 0x6b, 0xbf, 0x31, 0xc4, 0x40, 0x81, 0xf8, 0x66, 0x5f, 0x3d, 0xdb, 0x2b,
  1681. 0x42, 0xae, 0x14, 0x16, 0xa7, 0x4c, 0x4b, 0x77, 0xfa, 0xb3, 0xfa, 0x19,
  1682. 0xae, 0xec, 0xc5, 0x47, 0xe7, 0x6c, 0x8c, 0xbe, 0x6a, 0xd1, 0xf1, 0x00,
  1683. 0xa3, 0xfc, 0x8b, 0x2c, 0xe2, 0xa1, 0xea, 0x3a, 0x3d, 0xd7, 0xcf, 0xad,
  1684. 0x46, 0xc1, 0xb2, 0x78, 0x30, 0xb9, 0x40, 0xba, 0x18, 0xd0, 0x9e, 0x9b,
  1685. 0x7f, 0xa9, 0x02, 0xbb, 0x76, 0x06, 0x69, 0xb1, 0x73, 0x5c, 0xc7, 0xb7,
  1686. 0xbd, 0x39, 0x05, 0x2d, 0xa7, 0xf2, 0x62, 0x6f, 0xa8, 0x70, 0x00, 0xcf,
  1687. 0xfa, 0xda, 0x41, 0x00, 0x19, 0xd0, 0x53, 0x38, 0x6a, 0xd8, 0x08, 0xbd,
  1688. 0x3c, 0x0c, 0xfc, 0xf5, 0x6b, 0x91, 0x87, 0x9e, 0xb8, 0xd3, 0xf9, 0x32,
  1689. 0xee, 0x2d, 0x18, 0x5e, 0x54, 0xf3, 0x1b, 0x74,
  1690. }
  1691. };
  1692. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1693. result = do_hmac_prng_pr_false_test(31, &vec);
  1694. TC_END_RESULT(result);
  1695. return result;
  1696. }
  1697. unsigned int test_32(void)
  1698. {
  1699. unsigned int result = TC_PASS;
  1700. const struct hmac_prng_test_vector vec = {
  1701. 32,
  1702. 16,
  1703. 0,
  1704. 0,
  1705. 128,
  1706. {
  1707. 0xf6, 0x1b, 0x9a, 0x29, 0x3d, 0x18, 0x95, 0x2c, 0x74, 0x65, 0xa5, 0x11,
  1708. 0x38, 0x2c, 0x03, 0x1b, 0x86, 0x0b, 0xcc, 0x85, 0x86, 0xa7, 0xec, 0x99,
  1709. 0xd7, 0x52, 0x3e, 0xad, 0x8a, 0xca, 0xd0, 0xcb,
  1710. },
  1711. {
  1712. 0xe3, 0x32, 0xa1, 0x0e, 0x88, 0xf0, 0x0d, 0x95, 0x1d, 0xdf, 0xd4, 0xc7,
  1713. 0xb0, 0xb5, 0x96, 0x58,
  1714. },
  1715. {
  1716. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1717. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1718. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1719. },
  1720. {
  1721. 0x10, 0xf2, 0x3a, 0xfe, 0xbe, 0x72, 0x60, 0x93, 0xde, 0x81, 0x70, 0x03,
  1722. 0x6a, 0x9f, 0x69, 0x4e, 0x80, 0x84, 0xc0, 0x9c, 0x6e, 0x62, 0x0e, 0x98,
  1723. 0xbb, 0x45, 0xf1, 0x6e, 0xe5, 0x60, 0x31, 0xce,
  1724. },
  1725. {
  1726. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1727. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1728. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1729. },
  1730. {
  1731. 0xd3, 0x43, 0x84, 0x89, 0x3e, 0xf4, 0xcb, 0x3e, 0x42, 0x38, 0x6a, 0x42,
  1732. 0xef, 0xbd, 0xce, 0x46, 0x7c, 0xd4, 0x11, 0xa7, 0x6e, 0x6a, 0x32, 0xe1,
  1733. 0xd6, 0x34, 0xa5, 0xa3, 0x67, 0x0a, 0x95, 0x97, 0x39, 0x85, 0x85, 0x1b,
  1734. 0x5f, 0x36, 0x9a, 0x1b, 0xe6, 0x5a, 0xdd, 0x3e, 0xd6, 0x1f, 0x7c, 0x6a,
  1735. 0x11, 0x98, 0x64, 0x85, 0xb7, 0xe1, 0x6b, 0x57, 0x26, 0x3e, 0xed, 0x71,
  1736. 0xff, 0xc5, 0xa8, 0x97, 0x56, 0xcb, 0x42, 0xb7, 0xbd, 0xfd, 0xf9, 0x2b,
  1737. 0x2e, 0x31, 0xc3, 0x6b, 0x4d, 0x7b, 0x7c, 0xbd, 0x2e, 0x65, 0x0c, 0xcb,
  1738. 0xd6, 0xc0, 0xb5, 0xdf, 0xc9, 0x5c, 0xd8, 0x93, 0x7e, 0xf1, 0xe8, 0xeb,
  1739. 0xc7, 0x1a, 0x04, 0xcf, 0x33, 0xc3, 0x98, 0xf7, 0xf9, 0x08, 0x6f, 0x0b,
  1740. 0xae, 0x57, 0xee, 0x9a, 0xf8, 0xf9, 0x3f, 0x3b, 0x8e, 0xc1, 0xc9, 0x81,
  1741. 0x69, 0x17, 0xf6, 0x99, 0xd8, 0xf4, 0x32, 0x72,
  1742. }
  1743. };
  1744. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1745. result = do_hmac_prng_pr_false_test(32, &vec);
  1746. TC_END_RESULT(result);
  1747. return result;
  1748. }
  1749. unsigned int test_33(void)
  1750. {
  1751. unsigned int result = TC_PASS;
  1752. const struct hmac_prng_test_vector vec = {
  1753. 32,
  1754. 16,
  1755. 0,
  1756. 0,
  1757. 128,
  1758. {
  1759. 0x1b, 0x6b, 0x52, 0xb7, 0xba, 0x19, 0xc2, 0x6e, 0x62, 0xbd, 0x0a, 0xc9,
  1760. 0xb2, 0x33, 0xbc, 0xf0, 0x04, 0xbb, 0xc9, 0xfd, 0x9e, 0x1e, 0x73, 0x7c,
  1761. 0xcf, 0x88, 0x4a, 0x76, 0x08, 0x29, 0xcd, 0x10,
  1762. },
  1763. {
  1764. 0xd3, 0x81, 0xc8, 0xbe, 0x20, 0x32, 0x74, 0xf1, 0x76, 0x69, 0x18, 0xb4,
  1765. 0x5e, 0x08, 0xdd, 0xc6,
  1766. },
  1767. {
  1768. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1769. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1770. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1771. },
  1772. {
  1773. 0x2f, 0x50, 0x4e, 0xb2, 0x9f, 0x8e, 0xc0, 0x70, 0x4f, 0x07, 0x0b, 0x59,
  1774. 0xc0, 0x20, 0x76, 0xf4, 0xa4, 0xe5, 0xc8, 0xe7, 0xb6, 0x45, 0x68, 0xb2,
  1775. 0x2c, 0x5f, 0xf5, 0xba, 0xe1, 0x96, 0xd5, 0xeb,
  1776. },
  1777. {
  1778. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1779. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1780. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1781. },
  1782. {
  1783. 0xa4, 0x15, 0x00, 0xfc, 0x54, 0xcc, 0xf5, 0x49, 0xfe, 0x21, 0xb3, 0x69,
  1784. 0x34, 0x28, 0xe0, 0x3c, 0xcd, 0xff, 0xbf, 0x42, 0xff, 0x79, 0x0d, 0x47,
  1785. 0xdf, 0xf3, 0x4f, 0xd8, 0x8f, 0xce, 0x01, 0xaf, 0xd4, 0x9a, 0x26, 0xd3,
  1786. 0x00, 0xad, 0x66, 0xa3, 0x4c, 0xd3, 0xd1, 0xae, 0xc7, 0x3d, 0xd0, 0x02,
  1787. 0xdc, 0x83, 0xc1, 0xb8, 0x6c, 0x43, 0x2d, 0x72, 0x17, 0x66, 0xfb, 0x90,
  1788. 0x36, 0x61, 0x30, 0xa3, 0xa2, 0x88, 0x88, 0xa6, 0x3a, 0x5d, 0x0b, 0x8b,
  1789. 0xef, 0xa8, 0x95, 0x61, 0x1c, 0x25, 0xbf, 0xa8, 0x81, 0x75, 0x36, 0xeb,
  1790. 0x0b, 0x20, 0xb9, 0x98, 0x2c, 0x7d, 0x97, 0x6f, 0x47, 0x07, 0x56, 0x3b,
  1791. 0x16, 0xb4, 0x9c, 0xcb, 0xd4, 0x35, 0xcf, 0x04, 0x9b, 0x6a, 0x6e, 0x11,
  1792. 0xdf, 0x12, 0xe5, 0xfa, 0xf0, 0xd2, 0x0f, 0xc9, 0xde, 0xab, 0x39, 0x5a,
  1793. 0xc6, 0x93, 0x03, 0x60, 0x1b, 0xa3, 0x1f, 0xe3,
  1794. }
  1795. };
  1796. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1797. result = do_hmac_prng_pr_false_test(33, &vec);
  1798. TC_END_RESULT(result);
  1799. return result;
  1800. }
  1801. unsigned int test_34(void)
  1802. {
  1803. unsigned int result = TC_PASS;
  1804. const struct hmac_prng_test_vector vec = {
  1805. 32,
  1806. 16,
  1807. 0,
  1808. 0,
  1809. 128,
  1810. {
  1811. 0x36, 0x36, 0x7f, 0xa9, 0x73, 0xaa, 0x4e, 0x2e, 0xc7, 0xbc, 0xef, 0x33,
  1812. 0x99, 0x00, 0xdd, 0x95, 0x94, 0x16, 0xbd, 0x63, 0xe7, 0x46, 0xaa, 0x3c,
  1813. 0x14, 0xa9, 0xb6, 0x6e, 0x83, 0x8f, 0xc7, 0x80,
  1814. },
  1815. {
  1816. 0xfb, 0xa0, 0x71, 0x24, 0xe6, 0xd5, 0x7f, 0x3c, 0x81, 0xba, 0x59, 0x6d,
  1817. 0x25, 0x6e, 0x43, 0x3c,
  1818. },
  1819. {
  1820. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1821. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1822. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1823. },
  1824. {
  1825. 0xf3, 0x0b, 0xd1, 0x1a, 0x1f, 0x2b, 0xc9, 0x7d, 0xd8, 0xd4, 0x82, 0x9f,
  1826. 0x75, 0xd5, 0x9d, 0x55, 0x77, 0xe7, 0x26, 0x82, 0x5e, 0x23, 0x64, 0xd2,
  1827. 0x04, 0xe9, 0x07, 0x7d, 0xf4, 0x8f, 0x65, 0xa9,
  1828. },
  1829. {
  1830. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1831. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1832. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1833. },
  1834. {
  1835. 0x6a, 0x5b, 0xdf, 0xdf, 0x37, 0x31, 0x9c, 0x2e, 0x6b, 0xd2, 0xbc, 0x44,
  1836. 0x93, 0x84, 0x55, 0xe0, 0x3a, 0x2e, 0x83, 0x0b, 0x23, 0xee, 0x8e, 0xbd,
  1837. 0x6f, 0x98, 0x2f, 0xf8, 0x38, 0xb4, 0x99, 0xd6, 0xd3, 0x7b, 0x44, 0xef,
  1838. 0x0a, 0x59, 0x41, 0xba, 0x42, 0xfe, 0x02, 0x45, 0xe6, 0x4b, 0x28, 0xee,
  1839. 0x1a, 0x2f, 0xa3, 0xe8, 0xd2, 0x24, 0x69, 0xce, 0xb4, 0xc6, 0xf6, 0x75,
  1840. 0x62, 0x9c, 0x3c, 0x6a, 0xbf, 0x61, 0xaa, 0xb6, 0xb1, 0xe8, 0x87, 0xc8,
  1841. 0xcf, 0x66, 0x44, 0x80, 0x3f, 0x5d, 0x51, 0x16, 0xbe, 0x11, 0xff, 0x42,
  1842. 0x69, 0x8d, 0x42, 0xac, 0x36, 0x86, 0x80, 0x70, 0x36, 0xf5, 0x1a, 0xf4,
  1843. 0xae, 0x34, 0x4a, 0x36, 0x5e, 0x8a, 0xd8, 0xeb, 0xc3, 0xa6, 0x23, 0xde,
  1844. 0x1b, 0xcc, 0x68, 0xe0, 0x64, 0xd9, 0xfa, 0x82, 0xb6, 0xc8, 0x0f, 0xb0,
  1845. 0x57, 0x00, 0x60, 0xbc, 0x58, 0xe8, 0x7e, 0xbd,
  1846. }
  1847. };
  1848. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1849. result = do_hmac_prng_pr_false_test(34, &vec);
  1850. TC_END_RESULT(result);
  1851. return result;
  1852. }
  1853. unsigned int test_35(void)
  1854. {
  1855. unsigned int result = TC_PASS;
  1856. const struct hmac_prng_test_vector vec = {
  1857. 32,
  1858. 16,
  1859. 0,
  1860. 0,
  1861. 128,
  1862. {
  1863. 0x24, 0x85, 0xcf, 0xc6, 0x15, 0xd7, 0xfa, 0xb6, 0x0f, 0x46, 0x57, 0xe4,
  1864. 0x70, 0xc8, 0x12, 0x1e, 0xdd, 0x6b, 0xc1, 0xfa, 0x22, 0x47, 0xb2, 0x05,
  1865. 0xce, 0x40, 0x40, 0xee, 0x13, 0xc3, 0x6f, 0x17,
  1866. },
  1867. {
  1868. 0x08, 0x7e, 0x6b, 0x4b, 0xf1, 0xe7, 0x75, 0xa4, 0xc9, 0xf1, 0x82, 0xdf,
  1869. 0x61, 0x80, 0x13, 0x43,
  1870. },
  1871. {
  1872. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1873. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1874. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1875. },
  1876. {
  1877. 0x9a, 0xee, 0x0e, 0xbe, 0xd8, 0xda, 0xf7, 0x03, 0x36, 0x0a, 0xa1, 0xfa,
  1878. 0x2e, 0x17, 0xfa, 0xc6, 0xb7, 0x94, 0x5a, 0xc4, 0x5c, 0xda, 0xaa, 0xcb,
  1879. 0xcc, 0x9f, 0xce, 0x22, 0xd2, 0x8c, 0x0d, 0x1d,
  1880. },
  1881. {
  1882. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1883. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1884. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1885. },
  1886. {
  1887. 0xca, 0x4e, 0x2c, 0x4b, 0x63, 0xbb, 0x7f, 0x08, 0x43, 0x8b, 0x82, 0x5c,
  1888. 0xde, 0xb6, 0xa8, 0x83, 0xa2, 0xca, 0xf3, 0x0d, 0xdb, 0xcc, 0xeb, 0x05,
  1889. 0xc9, 0x1d, 0x37, 0xc0, 0x56, 0x76, 0xf6, 0x3c, 0xc4, 0xde, 0x0b, 0xd6,
  1890. 0x80, 0xa8, 0x21, 0xa9, 0x95, 0x56, 0x4e, 0xcd, 0x12, 0xe5, 0x4f, 0xc0,
  1891. 0x56, 0xa3, 0x9e, 0x4e, 0xc5, 0xfe, 0x33, 0x73, 0xb4, 0xd6, 0x62, 0x04,
  1892. 0x02, 0xb6, 0xa5, 0x37, 0x76, 0x2f, 0x95, 0xa2, 0xd4, 0x90, 0x95, 0x81,
  1893. 0xc8, 0x98, 0x5d, 0xf8, 0x01, 0xc7, 0x2f, 0x32, 0x23, 0xbd, 0x94, 0x67,
  1894. 0x96, 0xac, 0x71, 0xdc, 0x8f, 0xc1, 0xb2, 0x83, 0x8e, 0xa5, 0xaa, 0x68,
  1895. 0x64, 0x49, 0x08, 0xcc, 0x74, 0xcd, 0x81, 0x84, 0x86, 0x1b, 0x88, 0x94,
  1896. 0xe0, 0x74, 0x92, 0x2e, 0x85, 0xa5, 0xe2, 0x58, 0xfb, 0x6e, 0xd3, 0xec,
  1897. 0x10, 0xe3, 0xff, 0xe2, 0x40, 0xb6, 0x73, 0x8c,
  1898. }
  1899. };
  1900. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1901. result = do_hmac_prng_pr_false_test(35, &vec);
  1902. TC_END_RESULT(result);
  1903. return result;
  1904. }
  1905. unsigned int test_36(void)
  1906. {
  1907. unsigned int result = TC_PASS;
  1908. const struct hmac_prng_test_vector vec = {
  1909. 32,
  1910. 16,
  1911. 0,
  1912. 0,
  1913. 128,
  1914. {
  1915. 0xd1, 0x09, 0xe7, 0x55, 0xa7, 0x25, 0xc9, 0x64, 0x8d, 0x33, 0x71, 0xff,
  1916. 0xbf, 0x2c, 0xe0, 0x80, 0x45, 0xd1, 0x71, 0x75, 0xbb, 0x1e, 0x77, 0x7a,
  1917. 0xaa, 0x73, 0xfc, 0x6f, 0x9e, 0xc2, 0xac, 0xf6,
  1918. },
  1919. {
  1920. 0xc1, 0x42, 0xf6, 0xe0, 0x4d, 0xc8, 0x87, 0xd0, 0x2d, 0x57, 0xb1, 0xc2,
  1921. 0x7c, 0x1c, 0x77, 0xae,
  1922. },
  1923. {
  1924. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1925. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1926. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1927. },
  1928. {
  1929. 0x09, 0x1f, 0xd9, 0xe5, 0xb5, 0xb7, 0x41, 0x5f, 0x87, 0x3f, 0x2c, 0xb1,
  1930. 0xe5, 0x54, 0xea, 0xbd, 0xd9, 0x1f, 0x96, 0xb6, 0x84, 0xc1, 0x0c, 0xd0,
  1931. 0x02, 0x4f, 0xb3, 0x2e, 0x48, 0x1d, 0x4c, 0xb0,
  1932. },
  1933. {
  1934. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1935. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1936. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1937. },
  1938. {
  1939. 0x1d, 0x6f, 0xd5, 0x0a, 0x84, 0x38, 0x69, 0xbb, 0x8a, 0x9b, 0x83, 0xcc,
  1940. 0xb4, 0xd1, 0x00, 0xaf, 0x18, 0xee, 0xfc, 0xbd, 0xcb, 0x98, 0xaf, 0xa2,
  1941. 0x73, 0x73, 0x7c, 0x68, 0x7b, 0x50, 0x40, 0x22, 0x73, 0xb9, 0x88, 0x6c,
  1942. 0xa1, 0x32, 0x0e, 0xca, 0x2c, 0x55, 0x8e, 0xd2, 0x64, 0xa4, 0x2e, 0x02,
  1943. 0xe1, 0xa7, 0xdc, 0xbc, 0xa2, 0x67, 0xa3, 0x85, 0xdc, 0x70, 0xd6, 0xe1,
  1944. 0x5a, 0xc4, 0x27, 0x6a, 0x6a, 0xd5, 0x91, 0x07, 0xd6, 0x3b, 0x2d, 0x07,
  1945. 0x73, 0x91, 0xee, 0xe7, 0x62, 0xd9, 0xfb, 0xe2, 0x29, 0x46, 0xc7, 0xd6,
  1946. 0xe3, 0x75, 0x78, 0xd4, 0xdd, 0xcc, 0xfa, 0xe9, 0x78, 0x96, 0x28, 0xa6,
  1947. 0x05, 0x37, 0xa3, 0x93, 0x3c, 0xf7, 0xcf, 0xcb, 0x12, 0x71, 0xa2, 0x92,
  1948. 0x15, 0x99, 0x1b, 0xd3, 0x41, 0xdf, 0xf3, 0x9b, 0x2c, 0x9b, 0x6c, 0x24,
  1949. 0x3a, 0x03, 0xdd, 0xde, 0x0b, 0x73, 0xff, 0xb1,
  1950. }
  1951. };
  1952. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  1953. result = do_hmac_prng_pr_false_test(36, &vec);
  1954. TC_END_RESULT(result);
  1955. return result;
  1956. }
  1957. unsigned int test_37(void)
  1958. {
  1959. unsigned int result = TC_PASS;
  1960. const struct hmac_prng_test_vector vec = {
  1961. 32,
  1962. 16,
  1963. 0,
  1964. 0,
  1965. 128,
  1966. {
  1967. 0x8b, 0xc4, 0x7b, 0x94, 0xd0, 0x69, 0x19, 0xa1, 0x7b, 0x23, 0xfc, 0xcb,
  1968. 0xd4, 0xd2, 0x34, 0x94, 0xbe, 0x25, 0x87, 0xe0, 0xb5, 0xd2, 0xb8, 0x23,
  1969. 0x95, 0x59, 0x3d, 0xd4, 0x2a, 0x28, 0x37, 0xa5,
  1970. },
  1971. {
  1972. 0xbf, 0x4d, 0x19, 0xfd, 0xfa, 0xf2, 0xd5, 0xee, 0x48, 0x39, 0x11, 0x95,
  1973. 0x82, 0x8a, 0xcb, 0xed,
  1974. },
  1975. {
  1976. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1977. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1978. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1979. },
  1980. {
  1981. 0x08, 0x19, 0x0c, 0xb3, 0x1d, 0x8f, 0x20, 0xe8, 0xdf, 0x5e, 0x5a, 0x64,
  1982. 0x8e, 0xda, 0x89, 0x63, 0x68, 0xff, 0x3b, 0xae, 0x1b, 0x60, 0xf7, 0xca,
  1983. 0x1c, 0x93, 0xf8, 0xbc, 0xdc, 0xdf, 0xbd, 0xcb,
  1984. },
  1985. {
  1986. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1987. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1988. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1989. },
  1990. {
  1991. 0x61, 0x05, 0x19, 0x7b, 0x7f, 0xd3, 0xa3, 0x12, 0x17, 0x27, 0x89, 0x95,
  1992. 0x50, 0x14, 0x4f, 0x8b, 0x9f, 0x03, 0xcf, 0x9b, 0x1a, 0x57, 0x0e, 0x97,
  1993. 0x2a, 0xd2, 0x3f, 0x0e, 0xa7, 0x14, 0xdb, 0x42, 0x4a, 0x0b, 0xdc, 0xba,
  1994. 0x04, 0x5b, 0x6a, 0xeb, 0x12, 0x37, 0xc7, 0xab, 0xe9, 0x0b, 0xcf, 0x84,
  1995. 0x3d, 0x42, 0x53, 0xb3, 0x75, 0x72, 0x49, 0x53, 0xc3, 0xf7, 0x26, 0xa9,
  1996. 0xad, 0x8b, 0x25, 0xba, 0x91, 0x3e, 0x4d, 0xb3, 0x74, 0x18, 0x5a, 0xf9,
  1997. 0x36, 0x37, 0xf3, 0xdc, 0xdf, 0x97, 0x3b, 0x98, 0x67, 0x23, 0xf5, 0x90,
  1998. 0xee, 0x76, 0x69, 0x16, 0x05, 0x2c, 0x5e, 0xaa, 0x41, 0x91, 0x51, 0xf0,
  1999. 0x9d, 0x12, 0x41, 0x0e, 0x48, 0x28, 0x4a, 0xc8, 0xee, 0x87, 0xf2, 0x5e,
  2000. 0xd9, 0x67, 0x1b, 0x23, 0x5c, 0xd7, 0xac, 0xaa, 0x44, 0x0a, 0xd4, 0xb6,
  2001. 0xad, 0xa8, 0x64, 0xed, 0x62, 0xfb, 0x98, 0x23,
  2002. }
  2003. };
  2004. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2005. result = do_hmac_prng_pr_false_test(37, &vec);
  2006. TC_END_RESULT(result);
  2007. return result;
  2008. }
  2009. unsigned int test_38(void)
  2010. {
  2011. unsigned int result = TC_PASS;
  2012. const struct hmac_prng_test_vector vec = {
  2013. 32,
  2014. 16,
  2015. 0,
  2016. 0,
  2017. 128,
  2018. {
  2019. 0x8b, 0x95, 0xec, 0xfe, 0x9f, 0xd0, 0x90, 0xa0, 0x92, 0x10, 0x17, 0x2b,
  2020. 0x4c, 0xc1, 0x99, 0xef, 0x1b, 0xfa, 0x73, 0xed, 0xdd, 0xe5, 0x0d, 0x3d,
  2021. 0x41, 0x47, 0xc7, 0x5b, 0x6e, 0x0e, 0x76, 0xeb,
  2022. },
  2023. {
  2024. 0x13, 0x0c, 0x18, 0xae, 0xc9, 0x41, 0x5a, 0x2a, 0x54, 0xd6, 0xcf, 0xa4,
  2025. 0x33, 0x44, 0x08, 0x33,
  2026. },
  2027. {
  2028. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2029. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2030. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2031. },
  2032. {
  2033. 0x82, 0x5f, 0x0b, 0x1d, 0xd1, 0xa1, 0x57, 0x0f, 0xb7, 0x10, 0x23, 0x15,
  2034. 0x12, 0xcc, 0x28, 0x86, 0x81, 0xfc, 0xba, 0x15, 0xa0, 0xa4, 0x5c, 0xef,
  2035. 0x45, 0xaa, 0x1f, 0x26, 0x82, 0xcf, 0x37, 0xf8,
  2036. },
  2037. {
  2038. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2039. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2040. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2041. },
  2042. {
  2043. 0x5e, 0xec, 0xa5, 0x1c, 0x5a, 0x05, 0x8f, 0x08, 0xbc, 0xdc, 0xf8, 0x3c,
  2044. 0x1d, 0x90, 0x44, 0xb5, 0x20, 0x3b, 0x77, 0xb5, 0x36, 0xf8, 0x66, 0x23,
  2045. 0x15, 0x3e, 0x67, 0xf0, 0x5f, 0x3a, 0xdb, 0x28, 0xee, 0xb8, 0x92, 0x5b,
  2046. 0x61, 0x07, 0xd7, 0xa8, 0xac, 0xca, 0x77, 0x8b, 0xc4, 0x52, 0x6e, 0xf1,
  2047. 0xcf, 0xf5, 0xac, 0x5f, 0xdd, 0x02, 0x39, 0x52, 0x2f, 0xa1, 0x75, 0xd3,
  2048. 0xe0, 0x65, 0xd7, 0x8c, 0x19, 0xa6, 0xda, 0xba, 0x56, 0xe2, 0x0b, 0x28,
  2049. 0x4b, 0x43, 0x3e, 0xa8, 0x1c, 0xba, 0xe8, 0x13, 0x9c, 0xa7, 0x94, 0x45,
  2050. 0xb8, 0x87, 0x74, 0x99, 0x49, 0xda, 0xe8, 0xb9, 0xf0, 0x3e, 0x55, 0x9f,
  2051. 0xcf, 0x5f, 0x71, 0x07, 0x22, 0x83, 0x1e, 0xfa, 0x92, 0xad, 0xe0, 0xcd,
  2052. 0x0c, 0xab, 0x5c, 0x34, 0x3d, 0xfd, 0x4b, 0xcd, 0xd8, 0xd6, 0xbc, 0xef,
  2053. 0xba, 0xf0, 0x53, 0x1a, 0x8d, 0xed, 0x69, 0x3c,
  2054. }
  2055. };
  2056. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2057. result = do_hmac_prng_pr_false_test(38, &vec);
  2058. TC_END_RESULT(result);
  2059. return result;
  2060. }
  2061. unsigned int test_39(void)
  2062. {
  2063. unsigned int result = TC_PASS;
  2064. const struct hmac_prng_test_vector vec = {
  2065. 32,
  2066. 16,
  2067. 0,
  2068. 0,
  2069. 128,
  2070. {
  2071. 0xe8, 0x43, 0x6e, 0x86, 0x22, 0xea, 0x34, 0x5d, 0xcb, 0x94, 0x31, 0x64,
  2072. 0x0a, 0xff, 0x32, 0x8c, 0x21, 0xbe, 0x83, 0x83, 0x21, 0xda, 0xf0, 0x89,
  2073. 0x51, 0x0d, 0x27, 0xaa, 0x4d, 0x3d, 0x64, 0x0c,
  2074. },
  2075. {
  2076. 0xd6, 0x9a, 0xe9, 0xda, 0xe2, 0x16, 0xae, 0x6c, 0xf3, 0x6f, 0x48, 0xcf,
  2077. 0x3f, 0x97, 0xbd, 0x3a,
  2078. },
  2079. {
  2080. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2081. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2082. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2083. },
  2084. {
  2085. 0xd9, 0x12, 0xaa, 0xb4, 0x83, 0x68, 0xed, 0xe1, 0xc5, 0xf9, 0xc1, 0x11,
  2086. 0x6c, 0xb4, 0xe2, 0xe9, 0x91, 0xfb, 0xaf, 0x26, 0x24, 0xd9, 0xf8, 0x1a,
  2087. 0xf4, 0x7e, 0x8d, 0x74, 0x67, 0x46, 0x01, 0x05,
  2088. },
  2089. {
  2090. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2091. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2092. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2093. },
  2094. {
  2095. 0xc3, 0xcb, 0x77, 0x89, 0xf6, 0x9f, 0x6a, 0x99, 0xc3, 0x8c, 0xcd, 0x8d,
  2096. 0x73, 0xb6, 0x27, 0xc5, 0xa2, 0x4d, 0xa7, 0x11, 0x6f, 0x9d, 0x1b, 0x11,
  2097. 0xb4, 0xa9, 0xfe, 0x34, 0x48, 0xa6, 0x83, 0x7d, 0x21, 0x90, 0x99, 0xb3,
  2098. 0x39, 0xf0, 0x6f, 0x18, 0x5d, 0x9f, 0x4c, 0x3d, 0x1b, 0x9a, 0x47, 0x4b,
  2099. 0xbd, 0x2c, 0x63, 0x3a, 0xcc, 0x09, 0xfd, 0x54, 0x0a, 0xb8, 0xdf, 0x42,
  2100. 0x3b, 0x95, 0x15, 0xd5, 0x2c, 0x68, 0xc5, 0x39, 0x06, 0x8f, 0xcb, 0xa5,
  2101. 0x31, 0xb8, 0x85, 0xc2, 0x6c, 0xcc, 0x4f, 0x57, 0x6e, 0x34, 0x71, 0xf7,
  2102. 0xe0, 0x88, 0x6f, 0x39, 0x72, 0x51, 0x31, 0xc2, 0xf1, 0x25, 0x6b, 0x45,
  2103. 0x02, 0x20, 0x47, 0x3b, 0xcd, 0x07, 0xdd, 0xd9, 0x0a, 0xc8, 0x63, 0x05,
  2104. 0x9e, 0xb1, 0x8c, 0x69, 0x82, 0x70, 0x3c, 0xa4, 0x21, 0x9c, 0x74, 0x7d,
  2105. 0x84, 0x58, 0x00, 0x92, 0x09, 0x6a, 0x55, 0xc1,
  2106. }
  2107. };
  2108. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2109. result = do_hmac_prng_pr_false_test(39, &vec);
  2110. TC_END_RESULT(result);
  2111. return result;
  2112. }
  2113. unsigned int test_40(void)
  2114. {
  2115. unsigned int result = TC_PASS;
  2116. const struct hmac_prng_test_vector vec = {
  2117. 32,
  2118. 16,
  2119. 0,
  2120. 0,
  2121. 128,
  2122. {
  2123. 0x61, 0x30, 0x87, 0x33, 0xc0, 0x88, 0x36, 0x27, 0xae, 0x93, 0x19, 0xe1,
  2124. 0x86, 0x57, 0x07, 0x24, 0x40, 0xc7, 0x58, 0x8f, 0x58, 0x13, 0x1e, 0xda,
  2125. 0x02, 0x81, 0xa4, 0xe6, 0xc6, 0x3e, 0xc6, 0xf4,
  2126. },
  2127. {
  2128. 0x37, 0x38, 0x4d, 0x9f, 0x08, 0xc4, 0x25, 0x70, 0x35, 0xf7, 0x30, 0xdb,
  2129. 0x48, 0xa2, 0xc1, 0x53,
  2130. },
  2131. {
  2132. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2133. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2134. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2135. },
  2136. {
  2137. 0xec, 0x66, 0x81, 0xc5, 0x28, 0x13, 0x99, 0xbf, 0xb3, 0xad, 0x4f, 0x5c,
  2138. 0x6d, 0x73, 0xde, 0x97, 0x26, 0x35, 0x1e, 0x18, 0x9c, 0x46, 0xba, 0x94,
  2139. 0x30, 0x42, 0x50, 0xb7, 0x10, 0x52, 0xf9, 0x04,
  2140. },
  2141. {
  2142. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2143. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2144. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2145. },
  2146. {
  2147. 0xb3, 0xf6, 0x42, 0xcd, 0x6f, 0xfb, 0x6d, 0xea, 0xa1, 0x1c, 0x07, 0x4e,
  2148. 0x76, 0x72, 0x99, 0xd9, 0x3d, 0x24, 0x11, 0xfe, 0x4d, 0xbd, 0xe2, 0xad,
  2149. 0xc0, 0x46, 0x30, 0x90, 0x4e, 0x3b, 0xd5, 0xe6, 0x1b, 0x53, 0x44, 0x0f,
  2150. 0x9d, 0x51, 0x39, 0x8a, 0xf3, 0xeb, 0x8e, 0x95, 0x12, 0x33, 0xe5, 0x85,
  2151. 0xd8, 0x89, 0x75, 0x73, 0x7e, 0x3f, 0x45, 0xe2, 0x3f, 0x5d, 0x63, 0xbb,
  2152. 0xd4, 0x2a, 0x28, 0x62, 0xe8, 0x27, 0xa8, 0xa4, 0x9c, 0xed, 0xd8, 0xec,
  2153. 0xf8, 0xfd, 0x82, 0x56, 0xa4, 0x75, 0x73, 0xd3, 0x5c, 0x26, 0x22, 0xd7,
  2154. 0xe8, 0x7d, 0x83, 0xe5, 0x35, 0x72, 0x05, 0xe0, 0xdc, 0xe5, 0x31, 0xf9,
  2155. 0x2e, 0x8f, 0xa3, 0x25, 0x77, 0x82, 0xf1, 0xdb, 0x47, 0xcf, 0x70, 0xdb,
  2156. 0xe9, 0x44, 0x01, 0xcd, 0x50, 0xe2, 0x7d, 0xcc, 0xe1, 0x83, 0x69, 0x3a,
  2157. 0xd5, 0x01, 0xdb, 0x7b, 0x0a, 0xeb, 0x55, 0xb2,
  2158. }
  2159. };
  2160. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2161. result = do_hmac_prng_pr_false_test(40, &vec);
  2162. TC_END_RESULT(result);
  2163. return result;
  2164. }
  2165. unsigned int test_41(void)
  2166. {
  2167. unsigned int result = TC_PASS;
  2168. const struct hmac_prng_test_vector vec = {
  2169. 32,
  2170. 16,
  2171. 0,
  2172. 0,
  2173. 128,
  2174. {
  2175. 0x7c, 0x6b, 0x15, 0xd4, 0x47, 0x7c, 0x5d, 0xdf, 0xf3, 0xea, 0xfa, 0xd5,
  2176. 0x56, 0x90, 0xe0, 0x21, 0xf8, 0xbf, 0x5d, 0x34, 0x3b, 0xc6, 0xdc, 0x2d,
  2177. 0x58, 0xd2, 0x9a, 0x97, 0x9a, 0xa9, 0x21, 0xc3,
  2178. },
  2179. {
  2180. 0x79, 0x38, 0x80, 0x4e, 0xeb, 0xf0, 0x61, 0x38, 0x8d, 0x3c, 0x34, 0x61,
  2181. 0x44, 0xf4, 0x92, 0x11,
  2182. },
  2183. {
  2184. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2185. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2186. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2187. },
  2188. {
  2189. 0x7d, 0x8b, 0x82, 0xd9, 0xee, 0x9a, 0x99, 0xaf, 0x59, 0x34, 0x7d, 0xa7,
  2190. 0x67, 0x78, 0x05, 0x14, 0x42, 0xbe, 0x40, 0x98, 0xa3, 0x00, 0xa4, 0xc6,
  2191. 0x06, 0xa3, 0x24, 0x73, 0x14, 0xea, 0x46, 0x18,
  2192. },
  2193. {
  2194. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2195. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2196. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2197. },
  2198. {
  2199. 0x62, 0xac, 0xe9, 0x9f, 0xe2, 0xdb, 0x12, 0xe9, 0x3c, 0x2c, 0x91, 0x55,
  2200. 0xd7, 0x0a, 0x58, 0x1b, 0x2b, 0xac, 0xb8, 0xf1, 0xed, 0x90, 0x9a, 0x24,
  2201. 0xde, 0x1b, 0x36, 0x5f, 0xde, 0xec, 0xc6, 0x71, 0x35, 0x60, 0x7a, 0x44,
  2202. 0x79, 0x2b, 0x00, 0x4e, 0x50, 0x7d, 0x07, 0xf5, 0xb3, 0x61, 0x48, 0x0c,
  2203. 0xe4, 0xb2, 0xf1, 0xf6, 0xd3, 0x2b, 0xb2, 0x53, 0x69, 0x33, 0xec, 0xe2,
  2204. 0x81, 0x6d, 0x47, 0xa9, 0x46, 0x77, 0xcd, 0x82, 0x3e, 0xf6, 0x4a, 0x17,
  2205. 0xba, 0xaa, 0x33, 0x59, 0x87, 0x72, 0x2b, 0x0e, 0x1c, 0x02, 0x39, 0x94,
  2206. 0x0b, 0x0f, 0x3d, 0x00, 0x52, 0x19, 0xd8, 0xd3, 0x78, 0x15, 0x7c, 0xcf,
  2207. 0x17, 0xc1, 0x41, 0x62, 0x16, 0x5a, 0x8e, 0xf3, 0x8f, 0xd4, 0x08, 0xa4,
  2208. 0xe9, 0xac, 0x85, 0xa7, 0x08, 0x04, 0xd5, 0x73, 0x53, 0xc7, 0x5f, 0xb1,
  2209. 0x87, 0xbe, 0x0d, 0x72, 0xcf, 0x69, 0x9c, 0xc8,
  2210. }
  2211. };
  2212. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2213. result = do_hmac_prng_pr_false_test(41, &vec);
  2214. TC_END_RESULT(result);
  2215. return result;
  2216. }
  2217. unsigned int test_42(void)
  2218. {
  2219. unsigned int result = TC_PASS;
  2220. const struct hmac_prng_test_vector vec = {
  2221. 32,
  2222. 16,
  2223. 0,
  2224. 0,
  2225. 128,
  2226. {
  2227. 0x71, 0x59, 0xc7, 0xae, 0xa9, 0x6d, 0xa8, 0xab, 0x86, 0x48, 0xf8, 0xf8,
  2228. 0x54, 0xf3, 0x51, 0xbe, 0x9b, 0x28, 0x45, 0x66, 0x90, 0xb7, 0x88, 0xc4,
  2229. 0x9c, 0x3d, 0xce, 0x74, 0xb2, 0x31, 0x1e, 0x63,
  2230. },
  2231. {
  2232. 0x6a, 0xed, 0x95, 0x1f, 0xc6, 0xe1, 0x55, 0x7f, 0x5f, 0x1c, 0xb6, 0xad,
  2233. 0xbe, 0xc5, 0x46, 0x86,
  2234. },
  2235. {
  2236. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2237. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2238. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2239. },
  2240. {
  2241. 0xce, 0x6d, 0xe3, 0xb5, 0x21, 0x17, 0x77, 0xf9, 0x05, 0x66, 0x69, 0xd0,
  2242. 0x46, 0x01, 0x84, 0x00, 0x3e, 0x87, 0x97, 0x84, 0xdf, 0xff, 0x86, 0xd7,
  2243. 0xeb, 0xf0, 0x8a, 0x23, 0x3e, 0x6a, 0x54, 0x82,
  2244. },
  2245. {
  2246. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2247. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2248. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2249. },
  2250. {
  2251. 0x13, 0x33, 0xd1, 0x21, 0x11, 0xb9, 0x59, 0xc5, 0x11, 0x74, 0xca, 0x21,
  2252. 0x88, 0xed, 0x84, 0xca, 0x7d, 0xfd, 0xa3, 0x0d, 0x5f, 0xf2, 0x53, 0x27,
  2253. 0xcd, 0x19, 0xf7, 0x37, 0x79, 0x59, 0x0b, 0x19, 0xc0, 0xb5, 0x24, 0x75,
  2254. 0x60, 0x33, 0x00, 0x8b, 0x64, 0x06, 0xab, 0xe6, 0x31, 0xcc, 0xa6, 0xb8,
  2255. 0x2e, 0xbd, 0xda, 0x5c, 0xe7, 0xb9, 0xe2, 0x96, 0x8a, 0x8a, 0xde, 0xe3,
  2256. 0xe4, 0xa6, 0xb3, 0xea, 0xa8, 0x07, 0x9a, 0x64, 0xe7, 0x62, 0x2f, 0x66,
  2257. 0x28, 0xc3, 0x62, 0xb5, 0xc6, 0xdc, 0xb6, 0x1b, 0x7c, 0xf6, 0x45, 0x67,
  2258. 0xe6, 0xec, 0x5a, 0xe3, 0x12, 0x04, 0x72, 0x50, 0x51, 0x3e, 0xc5, 0x65,
  2259. 0x91, 0x60, 0xeb, 0xa5, 0xc7, 0x58, 0x35, 0x2f, 0x74, 0x16, 0xa0, 0x39,
  2260. 0x86, 0x37, 0x90, 0x2a, 0x4d, 0x7e, 0x86, 0xad, 0xf9, 0x84, 0x50, 0xdf,
  2261. 0x11, 0x1e, 0xf4, 0x33, 0x11, 0x1f, 0xf2, 0xd1,
  2262. }
  2263. };
  2264. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2265. result = do_hmac_prng_pr_false_test(42, &vec);
  2266. TC_END_RESULT(result);
  2267. return result;
  2268. }
  2269. unsigned int test_43(void)
  2270. {
  2271. unsigned int result = TC_PASS;
  2272. const struct hmac_prng_test_vector vec = {
  2273. 32,
  2274. 16,
  2275. 0,
  2276. 0,
  2277. 128,
  2278. {
  2279. 0xeb, 0xcf, 0xe2, 0x5c, 0xea, 0x69, 0x66, 0x45, 0xc7, 0x9e, 0x77, 0x29,
  2280. 0x22, 0xdf, 0x04, 0xd4, 0x84, 0x17, 0xf9, 0xcf, 0x2e, 0xce, 0xf7, 0x27,
  2281. 0xcc, 0xcb, 0x3e, 0x89, 0x98, 0x89, 0x3c, 0x59,
  2282. },
  2283. {
  2284. 0x13, 0x6e, 0x0c, 0x8e, 0x8f, 0xad, 0x1c, 0x49, 0x43, 0x5e, 0x6e, 0xac,
  2285. 0x76, 0x3c, 0x77, 0x6f,
  2286. },
  2287. {
  2288. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2289. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2290. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2291. },
  2292. {
  2293. 0x38, 0xb4, 0x8d, 0xb1, 0x1f, 0xf3, 0x1c, 0xe5, 0xe0, 0xa0, 0xcb, 0x62,
  2294. 0x79, 0x86, 0xb8, 0x8b, 0xea, 0xd7, 0x4b, 0xe8, 0x34, 0xa4, 0xe3, 0x47,
  2295. 0xde, 0x17, 0x07, 0x4c, 0xe1, 0x17, 0x24, 0x4c,
  2296. },
  2297. {
  2298. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2299. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2300. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2301. },
  2302. {
  2303. 0xd9, 0x0c, 0xb0, 0x83, 0x5b, 0x0c, 0xa6, 0x4c, 0x8d, 0x1d, 0xec, 0x23,
  2304. 0xf2, 0x77, 0x3b, 0x6d, 0xd8, 0x35, 0xbe, 0xe7, 0xe2, 0x7c, 0x91, 0x82,
  2305. 0x2d, 0xbf, 0x08, 0x98, 0xd1, 0x81, 0xde, 0x5b, 0xe4, 0xe4, 0xf6, 0xa1,
  2306. 0xd5, 0x97, 0x12, 0xe3, 0xb4, 0x72, 0x00, 0xcb, 0x14, 0xe1, 0x22, 0x52,
  2307. 0xe9, 0xd7, 0xc5, 0x62, 0x4c, 0x84, 0x1e, 0x4c, 0x05, 0xc7, 0x37, 0x2a,
  2308. 0x5e, 0x70, 0xe8, 0x3a, 0x1d, 0x86, 0xd0, 0xc0, 0x69, 0xbf, 0xb2, 0x9a,
  2309. 0x21, 0xf5, 0x11, 0xc4, 0xcc, 0x8c, 0x4c, 0xd9, 0xf6, 0x6b, 0xa3, 0xa0,
  2310. 0x81, 0x02, 0x44, 0xdf, 0x25, 0x18, 0xbf, 0x37, 0x85, 0xb3, 0x03, 0xe7,
  2311. 0xae, 0xbe, 0x9f, 0x19, 0x06, 0xbc, 0xff, 0x55, 0xa4, 0x54, 0x5d, 0x53,
  2312. 0xd2, 0xfb, 0x8d, 0xd7, 0x2e, 0xee, 0x00, 0x3f, 0x10, 0x00, 0x9e, 0x9b,
  2313. 0x41, 0x82, 0x52, 0x11, 0xf2, 0x35, 0x2b, 0xe9,
  2314. }
  2315. };
  2316. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2317. result = do_hmac_prng_pr_false_test(43, &vec);
  2318. TC_END_RESULT(result);
  2319. return result;
  2320. }
  2321. unsigned int test_44(void)
  2322. {
  2323. unsigned int result = TC_PASS;
  2324. const struct hmac_prng_test_vector vec = {
  2325. 32,
  2326. 16,
  2327. 0,
  2328. 0,
  2329. 128,
  2330. {
  2331. 0xb0, 0xcc, 0xe5, 0xac, 0xf0, 0xd3, 0x30, 0x5c, 0xf5, 0xeb, 0xdb, 0x55,
  2332. 0x87, 0x0a, 0xf9, 0x31, 0x68, 0x20, 0x0d, 0xa5, 0x6f, 0xa2, 0xfa, 0x68,
  2333. 0x85, 0xbf, 0x1c, 0x2a, 0x93, 0x28, 0x95, 0x6f,
  2334. },
  2335. {
  2336. 0x6d, 0x79, 0x66, 0x19, 0x8e, 0xc2, 0x34, 0x18, 0x08, 0x97, 0x39, 0x00,
  2337. 0xa9, 0xfc, 0xf0, 0x44,
  2338. },
  2339. {
  2340. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2341. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2342. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2343. },
  2344. {
  2345. 0x2c, 0x0b, 0xb1, 0xbd, 0xa5, 0xa0, 0x12, 0x57, 0x57, 0xb6, 0x4d, 0x57,
  2346. 0x3a, 0xd0, 0x4c, 0xf3, 0x6d, 0x47, 0xee, 0x46, 0x15, 0x58, 0x3f, 0xa8,
  2347. 0xfe, 0x5a, 0x2d, 0xec, 0x8b, 0x80, 0x59, 0x21,
  2348. },
  2349. {
  2350. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2351. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2352. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2353. },
  2354. {
  2355. 0xb4, 0x17, 0xb4, 0x47, 0x0e, 0xa9, 0x50, 0x77, 0x2c, 0xbe, 0xda, 0x48,
  2356. 0x5d, 0xe1, 0xe9, 0x45, 0xd2, 0x31, 0x9a, 0x6a, 0x35, 0x00, 0xd8, 0x8f,
  2357. 0xd5, 0x22, 0x08, 0x0a, 0x26, 0x44, 0xcf, 0x7c, 0x18, 0x61, 0xd4, 0x28,
  2358. 0x1d, 0xbe, 0xab, 0x81, 0x51, 0x8b, 0x59, 0x24, 0x50, 0x50, 0xb1, 0xb4,
  2359. 0xa5, 0xf8, 0x9e, 0x9a, 0x61, 0xbe, 0x4c, 0x5a, 0x43, 0x72, 0xb4, 0x97,
  2360. 0x2f, 0x1c, 0x17, 0xb9, 0x83, 0x35, 0x99, 0x07, 0xa4, 0x4d, 0x88, 0xb5,
  2361. 0xbb, 0x12, 0x84, 0x84, 0x28, 0xef, 0xea, 0x84, 0x40, 0x78, 0x93, 0x64,
  2362. 0x0f, 0xb0, 0x36, 0x3b, 0x23, 0x71, 0xe1, 0x48, 0x91, 0x24, 0x8a, 0xfd,
  2363. 0x61, 0xab, 0xb5, 0xac, 0x04, 0x74, 0xc5, 0x00, 0xe1, 0xc8, 0xef, 0x2c,
  2364. 0x11, 0x41, 0x84, 0xd7, 0xea, 0x47, 0x66, 0xd4, 0x6b, 0x78, 0xd2, 0x74,
  2365. 0x29, 0x86, 0xbb, 0x34, 0xe6, 0x2c, 0x49, 0xde,
  2366. }
  2367. };
  2368. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2369. result = do_hmac_prng_pr_false_test(44, &vec);
  2370. TC_END_RESULT(result);
  2371. return result;
  2372. }
  2373. unsigned int test_45(void)
  2374. {
  2375. unsigned int result = TC_PASS;
  2376. const struct hmac_prng_test_vector vec = {
  2377. 32,
  2378. 16,
  2379. 0,
  2380. 0,
  2381. 128,
  2382. {
  2383. 0x10, 0x3e, 0x04, 0xdc, 0x6c, 0x88, 0x5d, 0xe4, 0x22, 0x50, 0x67, 0xc8,
  2384. 0xdd, 0x67, 0xce, 0xc5, 0xa3, 0xdd, 0x7c, 0x45, 0x58, 0x6d, 0x2a, 0xdf,
  2385. 0x59, 0xb5, 0x4b, 0x54, 0x6c, 0xdc, 0x15, 0x91,
  2386. },
  2387. {
  2388. 0x5e, 0x37, 0xbf, 0x8f, 0x45, 0x5a, 0x28, 0x35, 0xcf, 0x44, 0x8d, 0xa6,
  2389. 0x83, 0xd6, 0x36, 0xb4,
  2390. },
  2391. {
  2392. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2393. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2394. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2395. },
  2396. {
  2397. 0x93, 0x6f, 0xfb, 0x8c, 0xb0, 0x83, 0x33, 0x24, 0xbe, 0x82, 0x3a, 0xe7,
  2398. 0x23, 0x92, 0x99, 0x96, 0xbc, 0x45, 0x0f, 0x81, 0x57, 0x6f, 0x2c, 0x43,
  2399. 0xb4, 0x82, 0x9e, 0xa8, 0x50, 0x44, 0xcb, 0x55,
  2400. },
  2401. {
  2402. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2403. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2404. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2405. },
  2406. {
  2407. 0x14, 0xef, 0xb3, 0xf1, 0x2f, 0xa0, 0x3b, 0xd2, 0x0b, 0x94, 0xb9, 0x79,
  2408. 0x4e, 0xee, 0xd7, 0xde, 0x9e, 0x7f, 0x7f, 0xc9, 0xf1, 0x06, 0xd6, 0x80,
  2409. 0x36, 0x63, 0x22, 0xe7, 0x10, 0x28, 0x5c, 0x1e, 0xb8, 0xc1, 0x43, 0x60,
  2410. 0x76, 0x41, 0xe0, 0xc4, 0x4f, 0xe9, 0xdb, 0x92, 0xc0, 0xab, 0xb5, 0xfd,
  2411. 0xa3, 0x80, 0x6b, 0xef, 0x59, 0x61, 0x28, 0x9e, 0x3e, 0xd7, 0x2b, 0x67,
  2412. 0xb1, 0x4f, 0x1e, 0x98, 0xdc, 0x3b, 0xd9, 0xb9, 0x38, 0x86, 0x3d, 0x5c,
  2413. 0xd9, 0xe4, 0x5f, 0xff, 0x3e, 0x7c, 0x5e, 0xb2, 0x56, 0xb4, 0x87, 0xf0,
  2414. 0x29, 0x64, 0x3a, 0x0a, 0x27, 0xc0, 0x9b, 0xcb, 0x6f, 0x5e, 0xec, 0x83,
  2415. 0x63, 0xc4, 0xde, 0xbe, 0xd6, 0x17, 0x52, 0xdf, 0x88, 0x40, 0xcd, 0x34,
  2416. 0xe6, 0xae, 0x7f, 0x5e, 0xe3, 0xfb, 0x53, 0xb7, 0x26, 0x76, 0x78, 0xd1,
  2417. 0x5e, 0x01, 0x72, 0xa6, 0x99, 0xfa, 0xbd, 0x8d,
  2418. }
  2419. };
  2420. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2421. result = do_hmac_prng_pr_false_test(45, &vec);
  2422. TC_END_RESULT(result);
  2423. return result;
  2424. }
  2425. unsigned int test_46(void)
  2426. {
  2427. unsigned int result = TC_PASS;
  2428. const struct hmac_prng_test_vector vec = {
  2429. 32,
  2430. 16,
  2431. 32,
  2432. 0,
  2433. 128,
  2434. {
  2435. 0x28, 0xba, 0x1a, 0x66, 0x16, 0x32, 0xef, 0xc8, 0xec, 0xce, 0xd5, 0xf5,
  2436. 0x1b, 0x79, 0x13, 0x00, 0xfb, 0x3b, 0x55, 0xb0, 0x5d, 0x04, 0x17, 0x08,
  2437. 0x63, 0x8d, 0xe4, 0xbe, 0xb7, 0x57, 0xa9, 0xe5,
  2438. },
  2439. {
  2440. 0x76, 0x82, 0x87, 0x96, 0xaf, 0xf0, 0x7f, 0x55, 0x79, 0x5c, 0xb5, 0x47,
  2441. 0x13, 0xc7, 0x7e, 0xd4,
  2442. },
  2443. {
  2444. 0x40, 0x93, 0x3f, 0xdc, 0xce, 0x41, 0x59, 0xb0, 0x95, 0x51, 0x11, 0xf8,
  2445. 0x44, 0x47, 0x1b, 0x0d, 0xb8, 0x5b, 0x73, 0xbd, 0xd2, 0xb7, 0x8c, 0x46,
  2446. 0x8d, 0xd3, 0x9e, 0x2a, 0x9b, 0x29, 0xae, 0xf2,
  2447. },
  2448. {
  2449. 0xa5, 0xf5, 0x42, 0xb0, 0x4a, 0xaa, 0x5d, 0xbc, 0x93, 0x1e, 0x47, 0x01,
  2450. 0x9f, 0xeb, 0x38, 0x96, 0x26, 0x16, 0xc5, 0x7a, 0xf0, 0x9b, 0x7c, 0x1d,
  2451. 0xf8, 0x3f, 0x2b, 0x86, 0x0f, 0xf7, 0x65, 0x86,
  2452. },
  2453. {
  2454. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2455. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2456. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2457. },
  2458. {
  2459. 0x65, 0xe5, 0xaa, 0x47, 0xb3, 0x85, 0xf1, 0xea, 0x42, 0xb2, 0x31, 0xb9,
  2460. 0xfe, 0x74, 0x42, 0x53, 0xb8, 0x59, 0x88, 0x59, 0xd7, 0x01, 0x1e, 0x52,
  2461. 0x5f, 0x5a, 0x2a, 0x1a, 0xd3, 0x2a, 0x97, 0x2a, 0x85, 0x08, 0x02, 0xc6,
  2462. 0x0a, 0x2b, 0xe1, 0x9b, 0xe2, 0x70, 0x06, 0x3a, 0x3c, 0xfb, 0xea, 0xae,
  2463. 0x95, 0x4f, 0x10, 0xb1, 0x22, 0x35, 0x2d, 0xe6, 0xa0, 0x8a, 0xc4, 0x10,
  2464. 0xe0, 0x99, 0x16, 0x53, 0xaa, 0xb2, 0x71, 0xb3, 0x60, 0xfe, 0x91, 0x91,
  2465. 0xcf, 0x5a, 0xdd, 0xcc, 0xcc, 0xed, 0x8c, 0x4a, 0xcf, 0xb6, 0x14, 0x57,
  2466. 0x04, 0x99, 0x92, 0x98, 0x8f, 0xd7, 0xa9, 0xac, 0xca, 0x1f, 0x1b, 0xca,
  2467. 0x35, 0xf1, 0x47, 0x58, 0x13, 0x69, 0x4a, 0x39, 0x98, 0x8e, 0x5f, 0xac,
  2468. 0x9f, 0x4a, 0xc0, 0x57, 0x22, 0x86, 0xbc, 0x46, 0x25, 0x82, 0xad, 0x0a,
  2469. 0xf7, 0x8a, 0xb3, 0xb8, 0x5e, 0xc1, 0x7a, 0x25,
  2470. }
  2471. };
  2472. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2473. result = do_hmac_prng_pr_false_test(46, &vec);
  2474. TC_END_RESULT(result);
  2475. return result;
  2476. }
  2477. unsigned int test_47(void)
  2478. {
  2479. unsigned int result = TC_PASS;
  2480. const struct hmac_prng_test_vector vec = {
  2481. 32,
  2482. 16,
  2483. 32,
  2484. 0,
  2485. 128,
  2486. {
  2487. 0xcf, 0xd5, 0x49, 0xc8, 0x08, 0x0a, 0x50, 0x2e, 0x3e, 0xdd, 0x79, 0x05,
  2488. 0x58, 0x4e, 0x5b, 0xe1, 0x4d, 0x7e, 0xf5, 0x59, 0x10, 0xd2, 0x82, 0xd8,
  2489. 0x1d, 0x34, 0x5c, 0x53, 0xca, 0x34, 0xe0, 0x7b,
  2490. },
  2491. {
  2492. 0xa5, 0x65, 0xe4, 0xbc, 0x2f, 0x46, 0x17, 0x69, 0xc0, 0xa8, 0xf2, 0x11,
  2493. 0xa6, 0x7d, 0xc9, 0xa7,
  2494. },
  2495. {
  2496. 0xd4, 0xad, 0xd6, 0x4c, 0x86, 0x03, 0x41, 0x56, 0x29, 0xda, 0x5c, 0xd5,
  2497. 0x8c, 0x51, 0x89, 0x58, 0xc8, 0x4d, 0x43, 0xad, 0xa7, 0x1b, 0xd1, 0xbd,
  2498. 0x57, 0x8f, 0xbe, 0x67, 0x74, 0x4b, 0x24, 0x76,
  2499. },
  2500. {
  2501. 0x27, 0x12, 0xa4, 0x16, 0x15, 0xf2, 0xb4, 0xaf, 0x37, 0xd6, 0x41, 0xc3,
  2502. 0xa7, 0x34, 0x07, 0xad, 0x62, 0xb4, 0x3e, 0xeb, 0xd0, 0x43, 0x9b, 0xc7,
  2503. 0x0f, 0xaf, 0x2b, 0x7f, 0x25, 0x25, 0xe2, 0xf1,
  2504. },
  2505. {
  2506. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2507. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2508. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2509. },
  2510. {
  2511. 0xb5, 0x22, 0x5f, 0xa8, 0xb7, 0xb1, 0xff, 0x05, 0x8f, 0x3e, 0xd4, 0x92,
  2512. 0xcc, 0x7f, 0x66, 0xcb, 0xc3, 0x93, 0x47, 0x74, 0x03, 0x14, 0x47, 0x12,
  2513. 0x5a, 0xf8, 0x20, 0xcf, 0xe9, 0x42, 0x9c, 0x19, 0x5d, 0xf9, 0xb3, 0xcc,
  2514. 0x9a, 0x11, 0xb0, 0x2c, 0xf3, 0x80, 0x06, 0x13, 0xeb, 0x53, 0x4d, 0xc2,
  2515. 0xce, 0x13, 0x65, 0xbc, 0x40, 0x9b, 0x2b, 0x13, 0xd6, 0x5b, 0xed, 0xe5,
  2516. 0x4c, 0xd2, 0x13, 0xa5, 0x49, 0xf2, 0xef, 0x9e, 0x3d, 0x17, 0xc4, 0xfb,
  2517. 0x99, 0x55, 0x1e, 0xea, 0x53, 0x9b, 0x91, 0x25, 0x48, 0x83, 0xca, 0xd8,
  2518. 0x6f, 0x5c, 0x38, 0x53, 0xa8, 0x03, 0x56, 0x6a, 0xc1, 0xea, 0x86, 0x4a,
  2519. 0x08, 0xbf, 0x6e, 0x80, 0x29, 0x58, 0x8f, 0xf8, 0x58, 0x0f, 0x7d, 0x26,
  2520. 0x57, 0xdc, 0x8f, 0x38, 0x9f, 0x72, 0xca, 0xb4, 0x25, 0x1a, 0x19, 0xc4,
  2521. 0xfa, 0x2e, 0x53, 0x9a, 0xfa, 0xc7, 0xc1, 0xc1,
  2522. }
  2523. };
  2524. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2525. result = do_hmac_prng_pr_false_test(47, &vec);
  2526. TC_END_RESULT(result);
  2527. return result;
  2528. }
  2529. unsigned int test_48(void)
  2530. {
  2531. unsigned int result = TC_PASS;
  2532. const struct hmac_prng_test_vector vec = {
  2533. 32,
  2534. 16,
  2535. 32,
  2536. 0,
  2537. 128,
  2538. {
  2539. 0x5c, 0xc9, 0x13, 0xe1, 0x26, 0x29, 0x48, 0x12, 0x62, 0xad, 0x31, 0x7f,
  2540. 0xb8, 0xd3, 0x98, 0x70, 0xb4, 0xf7, 0x26, 0x0c, 0xca, 0xcd, 0xce, 0xbd,
  2541. 0x91, 0x31, 0x71, 0x0a, 0xe7, 0x1e, 0x0c, 0x98,
  2542. },
  2543. {
  2544. 0xd4, 0x6d, 0xe6, 0xc6, 0xf4, 0xa5, 0x43, 0xfe, 0x5f, 0x47, 0x3c, 0x2c,
  2545. 0x2d, 0x0e, 0x21, 0x4a,
  2546. },
  2547. {
  2548. 0xca, 0x7f, 0x2f, 0x65, 0x01, 0xe6, 0xde, 0xa1, 0xbf, 0x7f, 0x54, 0xe6,
  2549. 0xbd, 0x50, 0x30, 0x47, 0x97, 0xab, 0x80, 0xea, 0x02, 0x28, 0x81, 0x3e,
  2550. 0xb3, 0x84, 0x98, 0x42, 0xf2, 0x17, 0x27, 0x3f,
  2551. },
  2552. {
  2553. 0xe7, 0xf0, 0x08, 0xab, 0xd0, 0x0d, 0x52, 0x52, 0x97, 0xff, 0x6e, 0x2c,
  2554. 0x39, 0xa3, 0x58, 0xe6, 0xc7, 0x5c, 0x4a, 0x64, 0xf6, 0xac, 0x68, 0xde,
  2555. 0xfd, 0x27, 0x56, 0x23, 0xf4, 0x96, 0xca, 0x07,
  2556. },
  2557. {
  2558. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2559. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2560. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2561. },
  2562. {
  2563. 0x8c, 0xa7, 0xdd, 0x3d, 0x3b, 0x82, 0xf6, 0x40, 0xb3, 0x3c, 0xf1, 0x76,
  2564. 0xb2, 0x2d, 0xe7, 0x13, 0x0c, 0x1d, 0xc5, 0x4c, 0x68, 0x4d, 0xdf, 0x8b,
  2565. 0xc7, 0xb0, 0x8a, 0x18, 0x17, 0x53, 0xad, 0x7a, 0xf8, 0xc4, 0x63, 0x82,
  2566. 0x87, 0xf7, 0x24, 0xdf, 0x8f, 0xf9, 0x91, 0x43, 0x1f, 0x99, 0xa3, 0x10,
  2567. 0x51, 0x73, 0xb1, 0x07, 0xf0, 0x64, 0x54, 0x1d, 0xd9, 0x24, 0x40, 0xfd,
  2568. 0x4c, 0xee, 0x65, 0x9e, 0x93, 0x22, 0xb5, 0x15, 0x41, 0x68, 0xf4, 0x9d,
  2569. 0xb3, 0x6f, 0x32, 0x24, 0x5a, 0xe4, 0xd9, 0x83, 0x15, 0x59, 0xeb, 0x83,
  2570. 0x9b, 0x28, 0xb9, 0xa3, 0x88, 0xae, 0x49, 0x80, 0xce, 0xea, 0xdd, 0x99,
  2571. 0x03, 0xd4, 0xfe, 0xbc, 0x66, 0x2b, 0xb7, 0xd2, 0x46, 0x01, 0x74, 0x63,
  2572. 0xe8, 0x43, 0xe7, 0x72, 0x56, 0x72, 0x66, 0x22, 0xcd, 0x1f, 0x10, 0x25,
  2573. 0xc5, 0x1b, 0x66, 0x24, 0xce, 0x84, 0x77, 0x16,
  2574. }
  2575. };
  2576. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2577. result = do_hmac_prng_pr_false_test(48, &vec);
  2578. TC_END_RESULT(result);
  2579. return result;
  2580. }
  2581. unsigned int test_49(void)
  2582. {
  2583. unsigned int result = TC_PASS;
  2584. const struct hmac_prng_test_vector vec = {
  2585. 32,
  2586. 16,
  2587. 32,
  2588. 0,
  2589. 128,
  2590. {
  2591. 0xb8, 0xbc, 0x5e, 0x67, 0x20, 0xa4, 0x14, 0xb7, 0xf7, 0xa2, 0x13, 0xd4,
  2592. 0x55, 0xd4, 0x3e, 0xc5, 0x5c, 0x77, 0x3e, 0xdf, 0x24, 0x03, 0x31, 0x97,
  2593. 0x16, 0xde, 0xf9, 0xee, 0xc1, 0x29, 0x39, 0x75,
  2594. },
  2595. {
  2596. 0x2d, 0xa2, 0x86, 0x29, 0x23, 0x31, 0x05, 0x6d, 0xcf, 0x88, 0x4d, 0xe8,
  2597. 0x94, 0x4e, 0x02, 0x6b,
  2598. },
  2599. {
  2600. 0x51, 0x4e, 0xb0, 0xc6, 0x9b, 0xbe, 0xa5, 0xb9, 0x95, 0x32, 0x49, 0x76,
  2601. 0xca, 0x12, 0x33, 0x37, 0xe2, 0x6f, 0x63, 0x9b, 0x06, 0xa7, 0xa3, 0x62,
  2602. 0xff, 0x57, 0x67, 0x35, 0x20, 0xcb, 0x70, 0xdb,
  2603. },
  2604. {
  2605. 0x3c, 0x1b, 0xba, 0x68, 0x1b, 0x3e, 0x04, 0x08, 0xd0, 0x8b, 0x92, 0xfd,
  2606. 0xd3, 0x25, 0x2d, 0xda, 0x67, 0x68, 0x5d, 0x86, 0x5f, 0xe8, 0x28, 0x6d,
  2607. 0x6c, 0x4f, 0xd6, 0x69, 0xc3, 0x3c, 0x09, 0x20,
  2608. },
  2609. {
  2610. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2611. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2612. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2613. },
  2614. {
  2615. 0xb9, 0x41, 0x60, 0x02, 0xc5, 0x44, 0xe0, 0x79, 0x99, 0x84, 0x64, 0xd5,
  2616. 0x18, 0x1a, 0xfe, 0x70, 0xc1, 0x06, 0xd4, 0x4b, 0x87, 0x6d, 0x16, 0xb3,
  2617. 0x9f, 0x93, 0x6a, 0xff, 0x36, 0xec, 0x86, 0xdd, 0xef, 0x5f, 0xb2, 0x68,
  2618. 0x8a, 0x0a, 0xad, 0xf6, 0x69, 0xc3, 0x9b, 0x6f, 0x67, 0x24, 0xff, 0x3e,
  2619. 0xea, 0xac, 0x90, 0xb7, 0x06, 0x74, 0xc1, 0x4d, 0x97, 0xe9, 0x94, 0xbd,
  2620. 0xec, 0x0f, 0xd5, 0x23, 0x73, 0xcf, 0x7a, 0x21, 0x25, 0x0c, 0x83, 0x5e,
  2621. 0x93, 0xc7, 0x3d, 0x7c, 0x49, 0x79, 0x0b, 0x59, 0x30, 0x0d, 0xb4, 0x85,
  2622. 0xf0, 0x21, 0xb1, 0x35, 0x93, 0xa3, 0x2d, 0x72, 0xb7, 0x05, 0x7d, 0xa0,
  2623. 0xd5, 0x5f, 0x63, 0xa6, 0xca, 0xe5, 0x18, 0x35, 0x40, 0xe8, 0x17, 0x29,
  2624. 0x0d, 0x8b, 0x91, 0xce, 0x55, 0xf4, 0x5f, 0xeb, 0x77, 0x30, 0x73, 0x2f,
  2625. 0xa9, 0x15, 0x6d, 0xa8, 0x27, 0x6d, 0x67, 0x32,
  2626. }
  2627. };
  2628. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2629. result = do_hmac_prng_pr_false_test(49, &vec);
  2630. TC_END_RESULT(result);
  2631. return result;
  2632. }
  2633. unsigned int test_50(void)
  2634. {
  2635. unsigned int result = TC_PASS;
  2636. const struct hmac_prng_test_vector vec = {
  2637. 32,
  2638. 16,
  2639. 32,
  2640. 0,
  2641. 128,
  2642. {
  2643. 0x28, 0xdc, 0x2f, 0x25, 0xb2, 0x63, 0x4c, 0x06, 0x72, 0xa0, 0xfa, 0x03,
  2644. 0x37, 0x85, 0x63, 0xde, 0x21, 0x45, 0x00, 0xfa, 0xa7, 0x7e, 0xe4, 0x07,
  2645. 0x64, 0x09, 0xaa, 0x16, 0xbc, 0x85, 0x12, 0xd2,
  2646. },
  2647. {
  2648. 0x85, 0xd5, 0x2e, 0xd3, 0x4e, 0x06, 0x29, 0x09, 0xbb, 0x5e, 0x61, 0x75,
  2649. 0xdf, 0xa1, 0x87, 0xb8,
  2650. },
  2651. {
  2652. 0x5b, 0xb0, 0xe4, 0x22, 0xce, 0xec, 0x47, 0xaa, 0xf4, 0x80, 0x82, 0x90,
  2653. 0x9f, 0x11, 0xc9, 0x98, 0xa5, 0xa7, 0x7d, 0x54, 0x32, 0x0b, 0x28, 0xea,
  2654. 0xea, 0xab, 0x71, 0x32, 0x21, 0xc9, 0x54, 0x19,
  2655. },
  2656. {
  2657. 0x43, 0x93, 0xb2, 0x0d, 0x7d, 0xd1, 0x5d, 0x67, 0xa2, 0xf7, 0x8e, 0x74,
  2658. 0x37, 0xe1, 0xe7, 0xa9, 0x51, 0x10, 0xdc, 0x2d, 0xf6, 0x46, 0xdb, 0x22,
  2659. 0x34, 0x2a, 0x71, 0x1a, 0xe1, 0x02, 0xd1, 0xd6,
  2660. },
  2661. {
  2662. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2663. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2664. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2665. },
  2666. {
  2667. 0x66, 0xdb, 0xf2, 0xb1, 0x21, 0xbf, 0xd4, 0xa7, 0x25, 0x84, 0xb5, 0x61,
  2668. 0xc6, 0x50, 0xf5, 0x09, 0x95, 0xd2, 0x2f, 0x0f, 0x37, 0x7d, 0xf2, 0xf6,
  2669. 0x0c, 0xd2, 0x6e, 0x03, 0x77, 0xb7, 0xd1, 0xae, 0x7b, 0x1a, 0xfc, 0x72,
  2670. 0xd2, 0x2f, 0x9a, 0xb5, 0xb5, 0x42, 0x76, 0x4a, 0x21, 0x9c, 0xbb, 0x66,
  2671. 0xf3, 0x25, 0x3e, 0x60, 0x2e, 0x93, 0x80, 0x7d, 0x3e, 0xc2, 0xbe, 0xe5,
  2672. 0xab, 0x13, 0x1f, 0x00, 0xfb, 0x4e, 0xd3, 0x28, 0x8b, 0xb1, 0xb6, 0xf5,
  2673. 0x2d, 0xd3, 0x9d, 0x79, 0xc8, 0x17, 0xab, 0x73, 0xd9, 0xb1, 0x1f, 0x81,
  2674. 0xe3, 0x01, 0x31, 0xd1, 0xf3, 0xca, 0xb9, 0x60, 0x44, 0x1d, 0x07, 0xec,
  2675. 0x23, 0xbe, 0xa0, 0xee, 0xd7, 0x71, 0x88, 0xd7, 0x14, 0x07, 0x87, 0x39,
  2676. 0xd8, 0x1c, 0x42, 0xcb, 0x22, 0x4b, 0xc5, 0xad, 0x0b, 0x65, 0xc8, 0xc9,
  2677. 0xc5, 0xa8, 0x08, 0xb6, 0x05, 0xf1, 0x92, 0x3c,
  2678. }
  2679. };
  2680. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2681. result = do_hmac_prng_pr_false_test(50, &vec);
  2682. TC_END_RESULT(result);
  2683. return result;
  2684. }
  2685. unsigned int test_51(void)
  2686. {
  2687. unsigned int result = TC_PASS;
  2688. const struct hmac_prng_test_vector vec = {
  2689. 32,
  2690. 16,
  2691. 32,
  2692. 0,
  2693. 128,
  2694. {
  2695. 0xaf, 0x84, 0x05, 0x9f, 0x96, 0xed, 0x19, 0xb2, 0xe5, 0x3f, 0x09, 0x12,
  2696. 0x28, 0xe7, 0x09, 0x67, 0x86, 0x47, 0x35, 0xdc, 0x83, 0x17, 0x8e, 0x15,
  2697. 0x9f, 0x57, 0x7c, 0x57, 0xbc, 0x12, 0x1c, 0xbf,
  2698. },
  2699. {
  2700. 0x84, 0xc6, 0x51, 0x5f, 0xcb, 0x88, 0x13, 0x6a, 0xdc, 0x23, 0x9f, 0x53,
  2701. 0x7f, 0xca, 0xbf, 0x4d,
  2702. },
  2703. {
  2704. 0x9f, 0xab, 0xe3, 0x0a, 0xdb, 0x15, 0xa1, 0x45, 0x2f, 0xba, 0xf2, 0xb6,
  2705. 0x27, 0xc0, 0xe4, 0x7a, 0xdc, 0x60, 0xce, 0x6e, 0x9b, 0x10, 0xa5, 0x6a,
  2706. 0x33, 0x8f, 0x08, 0xe8, 0x85, 0x8f, 0x82, 0xa1,
  2707. },
  2708. {
  2709. 0xf5, 0xfd, 0xb3, 0xb3, 0xaa, 0x2e, 0xde, 0xf8, 0xca, 0x8d, 0x31, 0xc9,
  2710. 0x91, 0x2e, 0xb4, 0x3a, 0x3a, 0xdc, 0x48, 0x25, 0xc8, 0x8d, 0x46, 0x32,
  2711. 0x30, 0xb1, 0x13, 0x91, 0x3f, 0x1d, 0x01, 0x17,
  2712. },
  2713. {
  2714. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2715. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2716. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2717. },
  2718. {
  2719. 0x18, 0x1c, 0x7a, 0x02, 0x26, 0x4e, 0x5a, 0x6a, 0x1f, 0xf4, 0xd9, 0x7d,
  2720. 0xbc, 0xe0, 0x74, 0x28, 0xe4, 0xb2, 0xb4, 0x49, 0xa2, 0xb8, 0x61, 0xeb,
  2721. 0x0a, 0x61, 0x72, 0x93, 0xfb, 0x84, 0x7e, 0x2a, 0xa1, 0x23, 0x4d, 0x21,
  2722. 0x4d, 0x50, 0x92, 0x07, 0x3f, 0x9d, 0xbb, 0x49, 0xfa, 0xe8, 0xb9, 0x63,
  2723. 0x56, 0x9b, 0xf4, 0xb7, 0xfe, 0x20, 0xe6, 0xaa, 0x35, 0x5e, 0x56, 0x5d,
  2724. 0xb4, 0xc7, 0x5d, 0x62, 0x3b, 0x47, 0xcb, 0x62, 0x7a, 0x7f, 0xde, 0x90,
  2725. 0x08, 0xd0, 0x29, 0xd2, 0x0c, 0x09, 0xbb, 0x50, 0xe8, 0x3a, 0xb0, 0x37,
  2726. 0xf3, 0x70, 0x8f, 0xc5, 0x18, 0x3f, 0xe0, 0xf2, 0x2a, 0x73, 0x2b, 0x89,
  2727. 0xf3, 0x9c, 0x3a, 0x45, 0xf1, 0xf1, 0x61, 0x68, 0x76, 0xf8, 0x72, 0x03,
  2728. 0xce, 0xef, 0x06, 0x05, 0xf0, 0x3c, 0x28, 0xb2, 0x65, 0x4d, 0xf0, 0x0a,
  2729. 0x4d, 0x55, 0xa0, 0xc0, 0x11, 0xb9, 0x39, 0x16,
  2730. }
  2731. };
  2732. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2733. result = do_hmac_prng_pr_false_test(51, &vec);
  2734. TC_END_RESULT(result);
  2735. return result;
  2736. }
  2737. unsigned int test_52(void)
  2738. {
  2739. unsigned int result = TC_PASS;
  2740. const struct hmac_prng_test_vector vec = {
  2741. 32,
  2742. 16,
  2743. 32,
  2744. 0,
  2745. 128,
  2746. {
  2747. 0x4a, 0xf2, 0xbb, 0xf3, 0x6d, 0x2a, 0x30, 0x25, 0x95, 0xde, 0x66, 0x7e,
  2748. 0x42, 0xe0, 0x8a, 0xbb, 0x5e, 0x44, 0xcb, 0xde, 0x9b, 0x1b, 0xe2, 0xee,
  2749. 0xd0, 0x33, 0x8a, 0xac, 0xb4, 0x86, 0x73, 0xbc,
  2750. },
  2751. {
  2752. 0xe0, 0xb9, 0x43, 0xf5, 0x5f, 0xc1, 0x34, 0x16, 0x86, 0x9a, 0x62, 0x4a,
  2753. 0x9a, 0x38, 0x3f, 0xcf,
  2754. },
  2755. {
  2756. 0xde, 0xa4, 0xc6, 0xb2, 0x49, 0x0f, 0x18, 0x72, 0xe6, 0x1a, 0x9b, 0xf7,
  2757. 0x7c, 0x3f, 0x3b, 0x67, 0xaf, 0xa8, 0xe8, 0x92, 0xbe, 0x0c, 0x3c, 0x1a,
  2758. 0xb8, 0x9e, 0x92, 0xa2, 0x70, 0x45, 0xe1, 0xa7,
  2759. },
  2760. {
  2761. 0xbb, 0x6a, 0x04, 0xce, 0x7f, 0x81, 0xef, 0x18, 0xbb, 0x34, 0x55, 0xc9,
  2762. 0x25, 0xb8, 0xd5, 0x76, 0xdf, 0x2b, 0xbf, 0x68, 0xc0, 0xfe, 0x4e, 0x65,
  2763. 0xc6, 0x80, 0x22, 0xaa, 0x69, 0xdc, 0x0e, 0xc2,
  2764. },
  2765. {
  2766. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2767. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2768. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2769. },
  2770. {
  2771. 0x31, 0x05, 0x2a, 0x14, 0xc9, 0x11, 0xb6, 0x92, 0x64, 0x57, 0xf5, 0x62,
  2772. 0xfc, 0x27, 0xd1, 0x9f, 0x22, 0xa3, 0xde, 0x7d, 0xd1, 0x45, 0xaa, 0x75,
  2773. 0xb9, 0xb6, 0x03, 0xa6, 0x10, 0x9f, 0xe1, 0xc1, 0xfe, 0xa3, 0xff, 0x2e,
  2774. 0x37, 0xe9, 0xd9, 0x84, 0x14, 0x50, 0x2e, 0x2d, 0xfe, 0xf0, 0x13, 0x77,
  2775. 0x88, 0x18, 0x7e, 0x42, 0xa7, 0x1c, 0xd6, 0x94, 0x75, 0xa8, 0xbb, 0x00,
  2776. 0x40, 0xac, 0x6d, 0xb2, 0x3a, 0xed, 0x06, 0x92, 0x74, 0x95, 0x95, 0x4a,
  2777. 0xaa, 0x23, 0x19, 0x3d, 0xb8, 0x32, 0x89, 0xf7, 0x5f, 0x96, 0x6e, 0xef,
  2778. 0x0a, 0x7c, 0xed, 0x68, 0xe8, 0x87, 0x1a, 0xb2, 0xa4, 0x7d, 0x38, 0x92,
  2779. 0xf5, 0x94, 0xa9, 0x8c, 0x90, 0xae, 0x51, 0xcf, 0x11, 0xbc, 0xf6, 0xed,
  2780. 0x87, 0x9d, 0x45, 0x8d, 0x17, 0x1f, 0x33, 0x4c, 0x04, 0x92, 0x34, 0xdc,
  2781. 0xe7, 0x94, 0x1f, 0x34, 0xb4, 0x83, 0x9f, 0xcb,
  2782. }
  2783. };
  2784. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2785. result = do_hmac_prng_pr_false_test(52, &vec);
  2786. TC_END_RESULT(result);
  2787. return result;
  2788. }
  2789. unsigned int test_53(void)
  2790. {
  2791. unsigned int result = TC_PASS;
  2792. const struct hmac_prng_test_vector vec = {
  2793. 32,
  2794. 16,
  2795. 32,
  2796. 0,
  2797. 128,
  2798. {
  2799. 0xd6, 0x66, 0xa2, 0xe7, 0x0a, 0xf2, 0x77, 0x12, 0x69, 0x42, 0x5c, 0x4d,
  2800. 0xc1, 0xec, 0xa8, 0x7f, 0xe1, 0x77, 0x31, 0x38, 0x43, 0xb8, 0xb6, 0xb9,
  2801. 0xc3, 0xd4, 0xda, 0x9d, 0x46, 0x54, 0x0c, 0xaf,
  2802. },
  2803. {
  2804. 0xd5, 0x48, 0x6a, 0x3b, 0x88, 0x1c, 0x35, 0xbe, 0x94, 0x4d, 0xd2, 0x35,
  2805. 0x9b, 0x88, 0xd6, 0xa2,
  2806. },
  2807. {
  2808. 0x5f, 0x0c, 0xcf, 0x34, 0xc2, 0x57, 0x60, 0x8e, 0xbf, 0x9e, 0x5f, 0xcb,
  2809. 0xb9, 0x79, 0xc1, 0xd8, 0xf6, 0x69, 0x04, 0x7e, 0x71, 0x8c, 0x76, 0x0d,
  2810. 0x0a, 0x9b, 0xe0, 0xbe, 0xe7, 0xc9, 0x4d, 0x79,
  2811. },
  2812. {
  2813. 0x1a, 0x6c, 0xf1, 0xd8, 0xf6, 0xa1, 0x7a, 0xd9, 0xdb, 0xa6, 0x89, 0x8f,
  2814. 0x7f, 0x82, 0xd3, 0x3d, 0xba, 0x59, 0x6e, 0xac, 0xcc, 0x20, 0x11, 0xd1,
  2815. 0x55, 0xac, 0x6e, 0x39, 0xd5, 0x9a, 0x75, 0x58,
  2816. },
  2817. {
  2818. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2819. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2820. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2821. },
  2822. {
  2823. 0x58, 0xfd, 0xe4, 0xf4, 0xe1, 0x08, 0xa5, 0x40, 0x22, 0x6f, 0x40, 0x84,
  2824. 0x6b, 0xce, 0x66, 0xda, 0xb6, 0x08, 0x2e, 0xfb, 0x63, 0x6e, 0x89, 0x87,
  2825. 0xe1, 0x85, 0x42, 0xdd, 0x6e, 0x28, 0x40, 0xa8, 0x8b, 0xe0, 0x45, 0x01,
  2826. 0x94, 0x02, 0xb2, 0x03, 0x71, 0xe0, 0x8e, 0x41, 0x52, 0x38, 0x92, 0x5a,
  2827. 0x44, 0x0a, 0x49, 0x3e, 0xd8, 0xe1, 0x03, 0x55, 0xfc, 0x16, 0x46, 0x85,
  2828. 0xe4, 0x99, 0x60, 0x0e, 0xe1, 0x92, 0xed, 0x0b, 0x95, 0x31, 0x59, 0x2d,
  2829. 0x4a, 0x52, 0xf4, 0xd7, 0x0a, 0xc0, 0xa0, 0xaa, 0xe1, 0x2c, 0x17, 0x05,
  2830. 0xe9, 0xc1, 0xec, 0xa2, 0x6b, 0x36, 0xc0, 0x90, 0x6e, 0x21, 0x6f, 0xda,
  2831. 0xe4, 0x79, 0xae, 0xf2, 0xdc, 0xa8, 0x46, 0x0d, 0x05, 0x58, 0xbd, 0xf7,
  2832. 0x68, 0xd7, 0xc0, 0x00, 0x2f, 0xc7, 0x1d, 0x6a, 0x5e, 0xb0, 0x6f, 0xd6,
  2833. 0x60, 0x56, 0x42, 0x57, 0xa1, 0x58, 0xdb, 0x53,
  2834. }
  2835. };
  2836. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2837. result = do_hmac_prng_pr_false_test(53, &vec);
  2838. TC_END_RESULT(result);
  2839. return result;
  2840. }
  2841. unsigned int test_54(void)
  2842. {
  2843. unsigned int result = TC_PASS;
  2844. const struct hmac_prng_test_vector vec = {
  2845. 32,
  2846. 16,
  2847. 32,
  2848. 0,
  2849. 128,
  2850. {
  2851. 0x20, 0x8b, 0x9e, 0xf5, 0x00, 0xb0, 0x49, 0x3b, 0x7f, 0x2d, 0xed, 0x5f,
  2852. 0x3a, 0xf6, 0xbd, 0x56, 0x8f, 0x5d, 0xff, 0x0e, 0xbe, 0xfd, 0x19, 0x98,
  2853. 0xd3, 0x48, 0x03, 0x7e, 0xc3, 0x63, 0xdf, 0x80,
  2854. },
  2855. {
  2856. 0x13, 0xeb, 0x96, 0x9c, 0xea, 0xc8, 0x94, 0x56, 0xab, 0x22, 0xd8, 0x69,
  2857. 0x33, 0xa1, 0x81, 0x81,
  2858. },
  2859. {
  2860. 0xcc, 0xae, 0xbe, 0xad, 0x9e, 0x2b, 0x91, 0x1e, 0xf9, 0x27, 0xf3, 0x06,
  2861. 0x9d, 0xa5, 0xe3, 0x58, 0x2a, 0x78, 0x86, 0xd9, 0x56, 0x57, 0x0d, 0x2e,
  2862. 0xdf, 0x2a, 0xf4, 0x34, 0xb9, 0x47, 0x3d, 0xba,
  2863. },
  2864. {
  2865. 0x06, 0x9b, 0x76, 0x7a, 0xc6, 0x12, 0x3f, 0x9c, 0x55, 0x1d, 0x3b, 0xbd,
  2866. 0x43, 0x22, 0x8d, 0xf5, 0x4f, 0x37, 0x9c, 0xa6, 0xb4, 0x18, 0x96, 0x77,
  2867. 0x22, 0x82, 0x5f, 0xad, 0x33, 0x34, 0x3f, 0x9c,
  2868. },
  2869. {
  2870. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2871. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2872. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2873. },
  2874. {
  2875. 0xec, 0xc7, 0x58, 0xfd, 0x31, 0x6a, 0x75, 0xe5, 0xf9, 0x7a, 0x14, 0x80,
  2876. 0x3a, 0xe5, 0x1f, 0x8c, 0x0a, 0x80, 0xec, 0xba, 0x95, 0x4b, 0x54, 0xec,
  2877. 0x8b, 0x9d, 0xa8, 0x08, 0x1f, 0x0b, 0xe9, 0x68, 0x0b, 0x11, 0xac, 0xdc,
  2878. 0xb9, 0xfc, 0x65, 0xc6, 0xef, 0x45, 0x87, 0x87, 0x54, 0x61, 0x37, 0xfa,
  2879. 0xdb, 0xbf, 0x07, 0x7a, 0x60, 0x02, 0x52, 0x88, 0x35, 0xca, 0x3c, 0x80,
  2880. 0x8f, 0xa5, 0x93, 0xd8, 0x20, 0xa0, 0x65, 0x01, 0x59, 0x2d, 0x85, 0x7a,
  2881. 0xb0, 0xa6, 0x7b, 0x80, 0x3e, 0xcb, 0x63, 0x15, 0xba, 0x1a, 0xa0, 0xc9,
  2882. 0x0c, 0xaf, 0xed, 0xe0, 0x24, 0x80, 0xb9, 0x8a, 0x07, 0xcf, 0x9b, 0xb8,
  2883. 0x67, 0xdc, 0xe3, 0xb1, 0x57, 0x5b, 0x6b, 0x46, 0xd4, 0x04, 0x6f, 0x44,
  2884. 0x08, 0xdd, 0xc7, 0x12, 0x82, 0xfa, 0x43, 0xac, 0xc7, 0x38, 0xa2, 0x76,
  2885. 0x65, 0xb3, 0x3a, 0xfc, 0xcf, 0x97, 0x40, 0x77,
  2886. }
  2887. };
  2888. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2889. result = do_hmac_prng_pr_false_test(54, &vec);
  2890. TC_END_RESULT(result);
  2891. return result;
  2892. }
  2893. unsigned int test_55(void)
  2894. {
  2895. unsigned int result = TC_PASS;
  2896. const struct hmac_prng_test_vector vec = {
  2897. 32,
  2898. 16,
  2899. 32,
  2900. 0,
  2901. 128,
  2902. {
  2903. 0x01, 0x46, 0x9d, 0xfd, 0xc9, 0x93, 0xba, 0x87, 0x0c, 0x34, 0x87, 0xf9,
  2904. 0x3b, 0xec, 0x20, 0x81, 0x97, 0x4d, 0xe5, 0xf4, 0x19, 0x3d, 0x10, 0x5b,
  2905. 0xd8, 0xaf, 0x41, 0xcf, 0x00, 0x1f, 0x69, 0x9c,
  2906. },
  2907. {
  2908. 0x76, 0x15, 0x4e, 0xbb, 0xfe, 0xe0, 0x89, 0x51, 0xcf, 0xfc, 0x61, 0xc1,
  2909. 0xc2, 0x2c, 0x96, 0x85,
  2910. },
  2911. {
  2912. 0x4e, 0x5f, 0xa3, 0x38, 0x43, 0x45, 0xb6, 0x6b, 0x7d, 0xd4, 0xfe, 0x9f,
  2913. 0xc7, 0x88, 0xa0, 0x3a, 0x38, 0x05, 0xc5, 0xe8, 0xac, 0xb4, 0x70, 0x7e,
  2914. 0x6d, 0x24, 0x41, 0x2c, 0x49, 0x27, 0xe8, 0xff,
  2915. },
  2916. {
  2917. 0x5e, 0x74, 0x35, 0xf0, 0x0f, 0x59, 0x38, 0x7b, 0xf0, 0x97, 0x7a, 0x6d,
  2918. 0x79, 0xc9, 0x5b, 0x83, 0x18, 0x84, 0xe8, 0xed, 0x26, 0x1b, 0xdd, 0x09,
  2919. 0x58, 0x87, 0x16, 0x91, 0xc7, 0x0a, 0x3f, 0xe2,
  2920. },
  2921. {
  2922. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2923. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2924. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2925. },
  2926. {
  2927. 0x26, 0xdf, 0xf7, 0x9a, 0xd2, 0xe7, 0x29, 0x32, 0xcc, 0xb0, 0x0a, 0xfe,
  2928. 0x66, 0x90, 0x5f, 0xb9, 0x66, 0xfc, 0x7a, 0x05, 0x7b, 0x49, 0x1c, 0x37,
  2929. 0x5a, 0x31, 0x54, 0x0a, 0x79, 0xe3, 0x0a, 0x47, 0x80, 0x70, 0x8a, 0x1e,
  2930. 0x92, 0x8d, 0x7c, 0x6e, 0xf9, 0x59, 0x43, 0x3b, 0x9a, 0x0d, 0xbd, 0x19,
  2931. 0xcc, 0x73, 0x08, 0x2c, 0xf5, 0xd3, 0x04, 0xff, 0x2e, 0x9a, 0xcb, 0xc5,
  2932. 0x62, 0x20, 0x02, 0x50, 0xe7, 0x37, 0x6d, 0x7d, 0x35, 0xf2, 0x2b, 0xfa,
  2933. 0x25, 0x7c, 0x86, 0xb0, 0xda, 0x74, 0x83, 0x79, 0x1f, 0x8f, 0x82, 0xe7,
  2934. 0x95, 0x59, 0xe5, 0xb4, 0xb9, 0xbf, 0xe0, 0xe1, 0xfe, 0xc5, 0x2a, 0xc4,
  2935. 0x09, 0x33, 0xb3, 0x93, 0x4b, 0x13, 0xdd, 0x65, 0x0e, 0xd5, 0xcc, 0x18,
  2936. 0x3e, 0x79, 0x6b, 0xe3, 0x5f, 0xc5, 0x9f, 0xaf, 0x51, 0x3c, 0x40, 0xf1,
  2937. 0x24, 0x9b, 0xc8, 0xfe, 0xc4, 0xf2, 0xf6, 0x11,
  2938. }
  2939. };
  2940. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2941. result = do_hmac_prng_pr_false_test(55, &vec);
  2942. TC_END_RESULT(result);
  2943. return result;
  2944. }
  2945. unsigned int test_56(void)
  2946. {
  2947. unsigned int result = TC_PASS;
  2948. const struct hmac_prng_test_vector vec = {
  2949. 32,
  2950. 16,
  2951. 32,
  2952. 0,
  2953. 128,
  2954. {
  2955. 0xf1, 0x9f, 0x4d, 0xd4, 0x01, 0xe7, 0xfb, 0x21, 0xb3, 0xf7, 0xf7, 0x3c,
  2956. 0x8b, 0x39, 0x0e, 0xb6, 0x76, 0xf8, 0x95, 0xda, 0xab, 0x86, 0x0b, 0x49,
  2957. 0x1c, 0xb2, 0xfa, 0xc8, 0x51, 0x97, 0xc1, 0x49,
  2958. },
  2959. {
  2960. 0x25, 0x38, 0xe6, 0xbe, 0x68, 0x44, 0x1f, 0x15, 0xac, 0x6f, 0xd0, 0xa3,
  2961. 0x4e, 0xf3, 0xb8, 0xb8,
  2962. },
  2963. {
  2964. 0x12, 0x35, 0x2e, 0x74, 0xb9, 0x12, 0xc5, 0xc6, 0x37, 0xaf, 0x35, 0xb1,
  2965. 0x90, 0x47, 0x77, 0x5f, 0x9c, 0xae, 0x26, 0xc1, 0xad, 0x49, 0xc5, 0xd5,
  2966. 0x6c, 0xd2, 0x87, 0xc7, 0xb4, 0x11, 0x76, 0x22,
  2967. },
  2968. {
  2969. 0x05, 0x1f, 0xfc, 0xc7, 0x64, 0x79, 0xa5, 0x67, 0x0c, 0xb0, 0xfb, 0xba,
  2970. 0x2b, 0xdc, 0x83, 0x79, 0x33, 0x1d, 0x8d, 0xba, 0xd0, 0x60, 0x69, 0xf9,
  2971. 0xa5, 0xe3, 0x6c, 0xb8, 0xf7, 0xaf, 0xb3, 0x98,
  2972. },
  2973. {
  2974. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2975. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2976. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2977. },
  2978. {
  2979. 0x8c, 0x44, 0xe3, 0xd5, 0xd0, 0xfe, 0xe7, 0x9b, 0x1a, 0x25, 0x8f, 0x3e,
  2980. 0x30, 0xe3, 0xcd, 0x9a, 0x0e, 0xbd, 0x12, 0xcf, 0x68, 0x97, 0x8c, 0xca,
  2981. 0x5e, 0xd0, 0x53, 0x44, 0x76, 0x57, 0xff, 0x41, 0x05, 0x77, 0x8b, 0x4d,
  2982. 0xd8, 0x72, 0xfd, 0xe9, 0x2f, 0x98, 0x80, 0x4a, 0x72, 0x42, 0xea, 0x57,
  2983. 0xe1, 0x3b, 0x0d, 0x6a, 0x8d, 0x49, 0x37, 0x37, 0x48, 0xc4, 0x95, 0xa7,
  2984. 0x7d, 0xe8, 0x0e, 0xfe, 0x24, 0xfa, 0xe7, 0x68, 0x60, 0x4d, 0x1c, 0xbb,
  2985. 0x94, 0xeb, 0xd0, 0x8f, 0x37, 0x91, 0x40, 0xea, 0x52, 0x08, 0xdb, 0x58,
  2986. 0x9d, 0x1d, 0x1d, 0xdc, 0xb6, 0x9e, 0xcc, 0x76, 0x4b, 0x51, 0xfc, 0x08,
  2987. 0x25, 0x08, 0xac, 0xd6, 0x93, 0xce, 0xdb, 0xc7, 0x07, 0x0f, 0x55, 0x2d,
  2988. 0x29, 0x4b, 0x6b, 0x2b, 0xab, 0x9c, 0x7b, 0x6c, 0x9c, 0x0e, 0x06, 0x88,
  2989. 0x8b, 0xab, 0xbd, 0x75, 0x68, 0x8c, 0xf5, 0x36,
  2990. }
  2991. };
  2992. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  2993. result = do_hmac_prng_pr_false_test(56, &vec);
  2994. TC_END_RESULT(result);
  2995. return result;
  2996. }
  2997. unsigned int test_57(void)
  2998. {
  2999. unsigned int result = TC_PASS;
  3000. const struct hmac_prng_test_vector vec = {
  3001. 32,
  3002. 16,
  3003. 32,
  3004. 0,
  3005. 128,
  3006. {
  3007. 0xa0, 0x24, 0x5f, 0x99, 0x08, 0xf6, 0xc6, 0x64, 0xde, 0xa7, 0x68, 0x9e,
  3008. 0x97, 0x1a, 0x1f, 0xf2, 0xc1, 0x89, 0xee, 0xe4, 0x22, 0xea, 0x15, 0x7d,
  3009. 0x40, 0xa4, 0x44, 0xd8, 0x3c, 0x94, 0x19, 0x80,
  3010. },
  3011. {
  3012. 0xf5, 0x69, 0xf2, 0xaf, 0x4d, 0x5f, 0xbb, 0xb7, 0x81, 0x3f, 0x3e, 0x24,
  3013. 0x4e, 0x4d, 0x3d, 0xc4,
  3014. },
  3015. {
  3016. 0x88, 0x7e, 0x6c, 0x40, 0x26, 0x35, 0x97, 0xd7, 0x56, 0xc2, 0x5b, 0x40,
  3017. 0x15, 0xe7, 0x09, 0xa9, 0x66, 0x3e, 0x48, 0xd5, 0xa9, 0xfb, 0xb4, 0x81,
  3018. 0x3b, 0x85, 0xa5, 0x3b, 0x99, 0x7a, 0x64, 0xb6,
  3019. },
  3020. {
  3021. 0x2b, 0x85, 0x59, 0x8a, 0x4f, 0x92, 0xa0, 0x0f, 0x4c, 0xb4, 0xc1, 0xfa,
  3022. 0xd1, 0x82, 0x9e, 0xd6, 0xf8, 0xf0, 0x2a, 0x8a, 0x81, 0x02, 0x7d, 0x14,
  3023. 0xb6, 0x57, 0x4c, 0x91, 0x78, 0x3c, 0x1d, 0xc4,
  3024. },
  3025. {
  3026. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3027. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3028. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3029. },
  3030. {
  3031. 0xb4, 0xc4, 0xf4, 0x13, 0x96, 0x70, 0x6c, 0xf3, 0x6d, 0x6c, 0xd9, 0xff,
  3032. 0xb6, 0xf8, 0xa9, 0x4c, 0x46, 0x82, 0xa8, 0x69, 0x2a, 0xe9, 0xd8, 0xea,
  3033. 0xd8, 0x0a, 0xe8, 0x9d, 0x96, 0x4a, 0x01, 0xa5, 0xde, 0xc1, 0x49, 0x3d,
  3034. 0x96, 0xe7, 0x64, 0xb9, 0x49, 0x35, 0xf8, 0x8d, 0xfd, 0x95, 0xe7, 0xb5,
  3035. 0xfd, 0x19, 0x6e, 0xed, 0xa8, 0xc2, 0xaf, 0xe9, 0x94, 0x6d, 0xca, 0x07,
  3036. 0x25, 0xff, 0x51, 0x7d, 0x7b, 0xa3, 0xd8, 0xf7, 0xe0, 0x17, 0x41, 0x19,
  3037. 0x23, 0xfa, 0xa9, 0x28, 0x9f, 0x68, 0xb7, 0xf7, 0xba, 0x6e, 0x29, 0xe3,
  3038. 0xde, 0x65, 0x2f, 0xa4, 0xd6, 0x0e, 0x8c, 0xac, 0xf5, 0x82, 0xef, 0xa2,
  3039. 0x15, 0x7a, 0x23, 0xe9, 0x53, 0xb5, 0x03, 0x98, 0x1c, 0x48, 0x5c, 0xf5,
  3040. 0x23, 0xbd, 0x14, 0x56, 0xbb, 0x7e, 0x8c, 0x32, 0x2f, 0x7b, 0xf0, 0x06,
  3041. 0x22, 0x3e, 0x37, 0x74, 0x69, 0x75, 0x00, 0xfd,
  3042. }
  3043. };
  3044. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3045. result = do_hmac_prng_pr_false_test(57, &vec);
  3046. TC_END_RESULT(result);
  3047. return result;
  3048. }
  3049. unsigned int test_58(void)
  3050. {
  3051. unsigned int result = TC_PASS;
  3052. const struct hmac_prng_test_vector vec = {
  3053. 32,
  3054. 16,
  3055. 32,
  3056. 0,
  3057. 128,
  3058. {
  3059. 0xee, 0x8f, 0x7a, 0x02, 0x9a, 0xa7, 0xd2, 0x20, 0xa5, 0xa1, 0x9d, 0x28,
  3060. 0x5f, 0xff, 0x41, 0x1f, 0x2e, 0xd5, 0x66, 0xa1, 0x2e, 0xc3, 0xc8, 0x13,
  3061. 0xf9, 0x55, 0x9d, 0x22, 0x1d, 0xa3, 0x8e, 0x81,
  3062. },
  3063. {
  3064. 0xb0, 0x28, 0xd4, 0xb9, 0x6d, 0x9a, 0x61, 0x80, 0x1d, 0x24, 0x53, 0xc4,
  3065. 0xb4, 0x2f, 0xaf, 0xdb,
  3066. },
  3067. {
  3068. 0x28, 0x2c, 0xf8, 0x31, 0x13, 0x75, 0x83, 0x7c, 0x25, 0x77, 0xd3, 0x1c,
  3069. 0x50, 0x3e, 0xc0, 0x60, 0x23, 0xf8, 0xe2, 0xa5, 0xa0, 0xa2, 0xe5, 0xcf,
  3070. 0x9c, 0xb7, 0xd9, 0x11, 0x89, 0x9f, 0x2b, 0x5a,
  3071. },
  3072. {
  3073. 0x4c, 0x7b, 0x59, 0xe4, 0xdf, 0xd6, 0x9c, 0x36, 0xfe, 0xd4, 0xa1, 0x28,
  3074. 0xd7, 0xe6, 0x3d, 0x5e, 0x76, 0x47, 0x14, 0x3f, 0x5d, 0x4a, 0xab, 0x55,
  3075. 0x51, 0x6e, 0xad, 0x95, 0x9c, 0x05, 0x94, 0x6a,
  3076. },
  3077. {
  3078. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3079. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3080. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3081. },
  3082. {
  3083. 0xb6, 0xe8, 0x89, 0xd0, 0x2d, 0x5d, 0x4c, 0xd5, 0xa9, 0x37, 0xc7, 0x94,
  3084. 0x94, 0xe9, 0x92, 0x8c, 0x38, 0x3d, 0x5a, 0x3b, 0xb1, 0x1f, 0x6c, 0xea,
  3085. 0xa1, 0x80, 0xc7, 0x96, 0x47, 0x96, 0xac, 0x59, 0xfc, 0xc2, 0x46, 0x61,
  3086. 0x71, 0xd6, 0x1f, 0x53, 0x3c, 0xea, 0xee, 0x81, 0xb0, 0xdc, 0x76, 0x3f,
  3087. 0x0c, 0x62, 0xc4, 0x49, 0xb7, 0x79, 0xcd, 0x30, 0x3d, 0xdf, 0x56, 0xe1,
  3088. 0xce, 0x01, 0xdc, 0x12, 0x7b, 0xf1, 0xbb, 0x52, 0x67, 0x23, 0xfd, 0x7f,
  3089. 0x2f, 0x05, 0x46, 0x76, 0xd6, 0x51, 0xc9, 0x4d, 0xfb, 0x06, 0x23, 0xf9,
  3090. 0x72, 0x22, 0xe3, 0x42, 0x41, 0xb5, 0x65, 0x4d, 0x5d, 0x9f, 0x23, 0x1b,
  3091. 0x99, 0x41, 0x1c, 0x0f, 0x36, 0xd5, 0x7f, 0xcb, 0xd0, 0xed, 0x49, 0xe2,
  3092. 0xea, 0xc4, 0x7d, 0xb3, 0xf2, 0xa1, 0x22, 0x17, 0x8e, 0x11, 0x6d, 0x68,
  3093. 0xf0, 0x4f, 0xe0, 0x89, 0x88, 0x54, 0xe6, 0x95,
  3094. }
  3095. };
  3096. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3097. result = do_hmac_prng_pr_false_test(58, &vec);
  3098. TC_END_RESULT(result);
  3099. return result;
  3100. }
  3101. unsigned int test_59(void)
  3102. {
  3103. unsigned int result = TC_PASS;
  3104. const struct hmac_prng_test_vector vec = {
  3105. 32,
  3106. 16,
  3107. 32,
  3108. 0,
  3109. 128,
  3110. {
  3111. 0x10, 0xb8, 0x78, 0x9c, 0xdb, 0xd6, 0x77, 0x84, 0x42, 0xa4, 0x5e, 0xdf,
  3112. 0x22, 0x8b, 0x99, 0x23, 0xf4, 0x52, 0x63, 0x1a, 0xd0, 0xfe, 0x9e, 0x60,
  3113. 0x8d, 0x10, 0x82, 0x6b, 0xa7, 0x1d, 0xa7, 0xca,
  3114. },
  3115. {
  3116. 0x15, 0x9f, 0xc5, 0xd8, 0xe5, 0x0e, 0xb5, 0x6e, 0x22, 0x97, 0x47, 0x89,
  3117. 0xb1, 0xdc, 0x20, 0xd1,
  3118. },
  3119. {
  3120. 0x2d, 0xd5, 0x9e, 0x37, 0x76, 0x6c, 0x66, 0x75, 0x71, 0xb7, 0x79, 0xc0,
  3121. 0x6e, 0x12, 0xba, 0x21, 0x91, 0x88, 0x48, 0x97, 0x72, 0xf4, 0x86, 0x31,
  3122. 0xa6, 0x72, 0x8b, 0x5b, 0x86, 0x7e, 0x3c, 0xf4,
  3123. },
  3124. {
  3125. 0x96, 0x6d, 0x94, 0x20, 0x38, 0x03, 0x05, 0x09, 0xb2, 0x0e, 0x61, 0x00,
  3126. 0x62, 0x04, 0x2b, 0x6b, 0xf1, 0x04, 0x81, 0x28, 0x18, 0x89, 0x32, 0x92,
  3127. 0xa6, 0x8d, 0x57, 0xd1, 0xce, 0x86, 0x51, 0x51,
  3128. },
  3129. {
  3130. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3131. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3132. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3133. },
  3134. {
  3135. 0x3e, 0x6a, 0xcd, 0x8b, 0x4e, 0x85, 0xb4, 0xa0, 0xf7, 0x92, 0x8f, 0x6b,
  3136. 0xd4, 0x1a, 0x8e, 0x6b, 0x52, 0x52, 0x4f, 0xe7, 0x27, 0x23, 0xa0, 0x50,
  3137. 0x96, 0x37, 0xd3, 0x3f, 0x15, 0xaf, 0xe7, 0xd8, 0xda, 0x6a, 0x15, 0x20,
  3138. 0x9b, 0x9e, 0x41, 0x49, 0x57, 0x6f, 0xbb, 0x1f, 0xd8, 0x31, 0xf7, 0x84,
  3139. 0xc0, 0x44, 0x39, 0xab, 0xda, 0x46, 0x05, 0xd0, 0x65, 0x56, 0xdc, 0x30,
  3140. 0x02, 0x05, 0x5b, 0x58, 0x55, 0xfb, 0xa2, 0x01, 0xf6, 0xda, 0xef, 0x79,
  3141. 0xf7, 0x8d, 0x00, 0x1e, 0xd6, 0x9e, 0xca, 0x8a, 0x41, 0x85, 0x13, 0xd0,
  3142. 0x24, 0x64, 0xe8, 0xd7, 0x42, 0xc2, 0x79, 0x9c, 0xd6, 0x8e, 0xdf, 0xbe,
  3143. 0x88, 0xae, 0x9b, 0x35, 0xa0, 0xaa, 0x06, 0x5c, 0x42, 0xa4, 0x77, 0x00,
  3144. 0x58, 0xc4, 0xb0, 0x26, 0xd0, 0x35, 0x0a, 0x7a, 0xfa, 0x9c, 0x52, 0xc3,
  3145. 0xc7, 0xfa, 0x05, 0x4f, 0x8a, 0x96, 0xd8, 0x87,
  3146. }
  3147. };
  3148. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3149. result = do_hmac_prng_pr_false_test(59, &vec);
  3150. TC_END_RESULT(result);
  3151. return result;
  3152. }
  3153. unsigned int test_60(void)
  3154. {
  3155. unsigned int result = TC_PASS;
  3156. const struct hmac_prng_test_vector vec = {
  3157. 32,
  3158. 16,
  3159. 32,
  3160. 0,
  3161. 128,
  3162. {
  3163. 0x98, 0x29, 0xd2, 0xe5, 0x40, 0x96, 0x29, 0xd9, 0xc5, 0x3c, 0x7d, 0xbb,
  3164. 0x16, 0xc6, 0x19, 0xb6, 0x16, 0xb0, 0xd1, 0x73, 0x94, 0xa3, 0xe0, 0x55,
  3165. 0xbf, 0x6f, 0xae, 0x9f, 0xcb, 0xbb, 0xaf, 0xd4,
  3166. },
  3167. {
  3168. 0xe1, 0x5d, 0x27, 0x62, 0x63, 0x15, 0x16, 0x80, 0x7c, 0x1f, 0x07, 0x33,
  3169. 0x82, 0xe8, 0x52, 0x12,
  3170. },
  3171. {
  3172. 0x25, 0x56, 0xe3, 0xd7, 0x5e, 0xef, 0xe6, 0xb6, 0x17, 0x13, 0x28, 0xe6,
  3173. 0x60, 0xbb, 0x65, 0x58, 0xda, 0xdf, 0xfa, 0xa1, 0xe0, 0x32, 0xe7, 0xeb,
  3174. 0xb6, 0xb3, 0x26, 0x2a, 0xdd, 0xe0, 0xdd, 0xeb,
  3175. },
  3176. {
  3177. 0xa4, 0xf4, 0xe2, 0x8b, 0x33, 0x0b, 0x73, 0x38, 0x2f, 0xcc, 0x5c, 0x85,
  3178. 0x7e, 0xd6, 0x2e, 0x94, 0x5f, 0xd9, 0x71, 0x55, 0x40, 0x64, 0x54, 0x54,
  3179. 0x37, 0xa5, 0xd2, 0x2d, 0xdc, 0xbf, 0xf3, 0xee,
  3180. },
  3181. {
  3182. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3183. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3184. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3185. },
  3186. {
  3187. 0x74, 0x74, 0x02, 0xc5, 0x0d, 0xcc, 0xc3, 0xa6, 0x66, 0xd9, 0x4d, 0x2d,
  3188. 0x6f, 0x6f, 0x43, 0xfd, 0x2b, 0x50, 0x53, 0x84, 0x73, 0x3c, 0x97, 0x62,
  3189. 0xc2, 0xef, 0x84, 0x93, 0x6f, 0xb3, 0x29, 0xc3, 0x66, 0x54, 0x12, 0x88,
  3190. 0xfb, 0xc5, 0x78, 0xe9, 0x39, 0x7b, 0x5b, 0x11, 0x98, 0xf1, 0x66, 0x5f,
  3191. 0x8c, 0x37, 0x3d, 0xe8, 0x55, 0x6d, 0x3c, 0x08, 0xc6, 0x61, 0x9a, 0xa3,
  3192. 0xb3, 0x55, 0xdb, 0x20, 0x6f, 0x84, 0x0b, 0x6a, 0xa4, 0xcc, 0x72, 0x20,
  3193. 0x6d, 0x7f, 0xef, 0xb2, 0x43, 0x5d, 0x6b, 0x02, 0x4e, 0x4c, 0x15, 0x68,
  3194. 0xe9, 0xab, 0x31, 0xf7, 0x11, 0x0f, 0x43, 0x11, 0xb0, 0x5d, 0x79, 0x96,
  3195. 0xce, 0xba, 0x6e, 0x5e, 0x6b, 0xb9, 0x00, 0xf8, 0xe7, 0x21, 0xae, 0x10,
  3196. 0x6a, 0x95, 0x11, 0xf8, 0x92, 0x6d, 0xe2, 0xf8, 0x48, 0x71, 0x00, 0x69,
  3197. 0x8a, 0xa8, 0xfe, 0x99, 0x53, 0x88, 0xa0, 0x72,
  3198. }
  3199. };
  3200. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3201. result = do_hmac_prng_pr_false_test(60, &vec);
  3202. TC_END_RESULT(result);
  3203. return result;
  3204. }
  3205. unsigned int test_61(void)
  3206. {
  3207. unsigned int result = TC_PASS;
  3208. const struct hmac_prng_test_vector vec = {
  3209. 32,
  3210. 16,
  3211. 0,
  3212. 0,
  3213. 128,
  3214. {
  3215. 0x6a, 0xe8, 0x03, 0x03, 0x29, 0x23, 0x91, 0x33, 0x5b, 0xf9, 0xc9, 0x38,
  3216. 0x7f, 0xbd, 0x3b, 0xf6, 0x15, 0x75, 0x6c, 0x9c, 0x27, 0xc3, 0x47, 0x8c,
  3217. 0x87, 0xe2, 0x60, 0xcf, 0x97, 0xd4, 0x71, 0x10,
  3218. },
  3219. {
  3220. 0x01, 0xe1, 0x62, 0x47, 0xdd, 0x4c, 0xae, 0x64, 0x99, 0x33, 0x7d, 0x82,
  3221. 0x78, 0x4e, 0xa5, 0x7f,
  3222. },
  3223. {
  3224. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3225. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3226. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3227. },
  3228. {
  3229. 0x03, 0x57, 0x02, 0xef, 0x4e, 0x11, 0x2b, 0x17, 0x31, 0x12, 0xc5, 0x85,
  3230. 0x1d, 0x07, 0xb2, 0x79, 0x30, 0x98, 0x63, 0x74, 0x0d, 0x38, 0xd0, 0xd0,
  3231. 0x72, 0x02, 0x23, 0xe2, 0x40, 0x17, 0xbb, 0xc0,
  3232. },
  3233. {
  3234. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3235. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3236. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3237. },
  3238. {
  3239. 0xcf, 0x43, 0x15, 0x59, 0x8f, 0xcd, 0x6a, 0xf1, 0x31, 0x55, 0x18, 0xc4,
  3240. 0xbf, 0xba, 0xc0, 0x54, 0x0c, 0x58, 0x96, 0x35, 0x27, 0x35, 0x48, 0xa7,
  3241. 0xb5, 0x07, 0xe7, 0xd2, 0xe6, 0x85, 0xe5, 0x94, 0x7b, 0x87, 0xae, 0x25,
  3242. 0x7e, 0x58, 0xfa, 0xf2, 0x14, 0xf2, 0xb5, 0x8e, 0xd1, 0x0c, 0x3b, 0xd3,
  3243. 0x5f, 0x75, 0xf6, 0xc3, 0x5d, 0xd6, 0xd4, 0x41, 0xc9, 0x3b, 0xcd, 0x42,
  3244. 0xe7, 0x17, 0x20, 0x10, 0x26, 0x31, 0xb1, 0xa6, 0xa4, 0xba, 0x24, 0x7c,
  3245. 0x17, 0x5e, 0xd8, 0x00, 0xcf, 0xca, 0x6e, 0x1e, 0x83, 0x9b, 0x5a, 0xa9,
  3246. 0x07, 0x60, 0x4c, 0xcf, 0xe6, 0xf9, 0x84, 0xf6, 0x82, 0x2e, 0x00, 0x1a,
  3247. 0xb0, 0x2d, 0xd6, 0x63, 0x49, 0x64, 0xf7, 0x89, 0xcb, 0x10, 0x7a, 0x97,
  3248. 0x73, 0x46, 0x69, 0x3f, 0x32, 0x44, 0xc8, 0x95, 0xe8, 0x40, 0xdf, 0xa0,
  3249. 0xed, 0xf7, 0xf1, 0x4d, 0xc6, 0x1d, 0x79, 0x4f,
  3250. }
  3251. };
  3252. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3253. result = do_hmac_prng_pr_false_test(61, &vec);
  3254. TC_END_RESULT(result);
  3255. return result;
  3256. }
  3257. unsigned int test_62(void)
  3258. {
  3259. unsigned int result = TC_PASS;
  3260. const struct hmac_prng_test_vector vec = {
  3261. 32,
  3262. 16,
  3263. 0,
  3264. 0,
  3265. 128,
  3266. {
  3267. 0xda, 0x2c, 0x40, 0x6c, 0x1a, 0x40, 0xf1, 0xbe, 0x98, 0xfd, 0xb2, 0x86,
  3268. 0x07, 0x8a, 0x92, 0x7f, 0x60, 0x6a, 0xe8, 0xec, 0x91, 0xab, 0x3a, 0x66,
  3269. 0x3f, 0xe2, 0x13, 0xfd, 0x8f, 0x05, 0x23, 0xf9,
  3270. },
  3271. {
  3272. 0x4b, 0x49, 0x85, 0x7c, 0x62, 0x5f, 0x7a, 0x6c, 0xa2, 0x66, 0x9a, 0xba,
  3273. 0x21, 0x3d, 0x79, 0xcb,
  3274. },
  3275. {
  3276. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3277. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3278. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3279. },
  3280. {
  3281. 0x52, 0xc1, 0xc0, 0x06, 0xc5, 0x77, 0x96, 0x91, 0x79, 0xcc, 0x1f, 0xef,
  3282. 0xff, 0x1b, 0xb0, 0xdc, 0x42, 0x25, 0x5c, 0x35, 0x8b, 0x68, 0x6c, 0x73,
  3283. 0x21, 0x6d, 0xa1, 0x21, 0x6f, 0x82, 0xff, 0xfb,
  3284. },
  3285. {
  3286. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3287. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3288. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3289. },
  3290. {
  3291. 0x5b, 0x6e, 0x8e, 0xf0, 0x30, 0x07, 0x12, 0xaa, 0xeb, 0x44, 0xa5, 0x2f,
  3292. 0x91, 0xca, 0x2f, 0x3d, 0xee, 0xfc, 0xee, 0xa9, 0x5c, 0xe2, 0x8e, 0x8c,
  3293. 0x4d, 0x93, 0x10, 0x12, 0x5a, 0x7d, 0x25, 0x9c, 0x34, 0x23, 0xb2, 0xcd,
  3294. 0x66, 0x2b, 0x33, 0x37, 0xae, 0xdf, 0x7d, 0xf1, 0x27, 0x19, 0xaf, 0x7b,
  3295. 0xe6, 0xca, 0xcb, 0x3a, 0x65, 0x65, 0x07, 0x0f, 0xaf, 0xc9, 0x86, 0xc3,
  3296. 0x36, 0x83, 0x6a, 0xa2, 0xe1, 0x8c, 0x23, 0x7b, 0x23, 0xff, 0x19, 0x33,
  3297. 0x9b, 0x4b, 0x5e, 0xf7, 0x04, 0x63, 0x4f, 0x16, 0x26, 0xd6, 0x6b, 0xce,
  3298. 0x9e, 0x72, 0x55, 0x51, 0x83, 0x74, 0x2b, 0x59, 0x13, 0x35, 0x82, 0x1c,
  3299. 0xe9, 0xc3, 0xa9, 0x5f, 0x2a, 0x1b, 0xea, 0xb6, 0xb0, 0x65, 0x9f, 0xfe,
  3300. 0x6e, 0x94, 0x0b, 0x55, 0x9d, 0xfb, 0x8a, 0x8d, 0xf1, 0xa4, 0x73, 0x30,
  3301. 0x8c, 0x31, 0x54, 0x58, 0x4e, 0xbf, 0x96, 0x22,
  3302. }
  3303. };
  3304. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3305. result = do_hmac_prng_pr_false_test(62, &vec);
  3306. TC_END_RESULT(result);
  3307. return result;
  3308. }
  3309. unsigned int test_63(void)
  3310. {
  3311. unsigned int result = TC_PASS;
  3312. const struct hmac_prng_test_vector vec = {
  3313. 32,
  3314. 16,
  3315. 0,
  3316. 0,
  3317. 128,
  3318. {
  3319. 0x5b, 0x77, 0xe8, 0x85, 0x05, 0x6b, 0x4f, 0xaf, 0x9d, 0x8e, 0xf9, 0xc8,
  3320. 0x57, 0x30, 0xfd, 0x50, 0x75, 0xf0, 0xa0, 0x70, 0x15, 0xc6, 0xdb, 0xd7,
  3321. 0x32, 0x3c, 0xe6, 0x3e, 0xa5, 0xd7, 0x1e, 0x42,
  3322. },
  3323. {
  3324. 0x9a, 0xc3, 0xae, 0x89, 0xcf, 0xb2, 0x86, 0xb3, 0x11, 0x49, 0xe7, 0x8b,
  3325. 0xce, 0xd8, 0xcf, 0xf0,
  3326. },
  3327. {
  3328. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3329. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3330. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3331. },
  3332. {
  3333. 0x0d, 0xa5, 0xab, 0x25, 0x7b, 0x38, 0x96, 0x73, 0x85, 0x2c, 0xde, 0x48,
  3334. 0x00, 0xc0, 0x5a, 0xca, 0x59, 0x6e, 0xc5, 0x7c, 0x25, 0xd7, 0xda, 0x45,
  3335. 0x19, 0x11, 0x48, 0x7a, 0x5b, 0xa6, 0xbd, 0xaa,
  3336. },
  3337. {
  3338. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3339. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3340. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3341. },
  3342. {
  3343. 0x1d, 0x60, 0x4f, 0x4d, 0x5b, 0xb1, 0x0e, 0x11, 0x4a, 0xed, 0x67, 0x8a,
  3344. 0x51, 0x39, 0xbb, 0x46, 0xee, 0x69, 0x55, 0xd8, 0x6e, 0x06, 0x3d, 0x17,
  3345. 0xca, 0x5e, 0xf6, 0xdb, 0x38, 0x71, 0x51, 0x43, 0x0d, 0xb2, 0x3a, 0xa0,
  3346. 0xb4, 0x8a, 0x34, 0x3b, 0x2d, 0x35, 0x00, 0x3d, 0x29, 0x5f, 0xd0, 0x24,
  3347. 0xfc, 0x34, 0x4e, 0x7c, 0x01, 0x06, 0x49, 0x24, 0x84, 0x69, 0xda, 0x7d,
  3348. 0x9a, 0xb7, 0xe2, 0x50, 0x97, 0xbe, 0x35, 0xfe, 0xda, 0xd1, 0xba, 0x89,
  3349. 0xad, 0x66, 0xaf, 0x96, 0x80, 0x9c, 0x64, 0xba, 0x3b, 0x2e, 0xfe, 0x60,
  3350. 0x1c, 0x1d, 0x6c, 0x20, 0x1c, 0xa5, 0x5e, 0xa8, 0x2d, 0x90, 0x1a, 0xf1,
  3351. 0x46, 0xf2, 0x00, 0x29, 0x1b, 0x11, 0x3f, 0xbb, 0x05, 0x9a, 0x20, 0x43,
  3352. 0x28, 0x5a, 0x8d, 0x88, 0xee, 0x65, 0x5d, 0xa7, 0x6f, 0x83, 0x79, 0x08,
  3353. 0xec, 0xfc, 0x9b, 0xc0, 0xbb, 0xae, 0xc1, 0xc3,
  3354. }
  3355. };
  3356. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3357. result = do_hmac_prng_pr_false_test(63, &vec);
  3358. TC_END_RESULT(result);
  3359. return result;
  3360. }
  3361. unsigned int test_64(void)
  3362. {
  3363. unsigned int result = TC_PASS;
  3364. const struct hmac_prng_test_vector vec = {
  3365. 32,
  3366. 16,
  3367. 0,
  3368. 0,
  3369. 128,
  3370. {
  3371. 0x40, 0x30, 0xb2, 0xa9, 0x83, 0xa8, 0xe2, 0x14, 0xc9, 0xb6, 0x05, 0x3f,
  3372. 0x47, 0x4d, 0xeb, 0xb1, 0x35, 0x52, 0x2e, 0x2b, 0x0d, 0x50, 0xae, 0x98,
  3373. 0x44, 0x1b, 0xef, 0x99, 0xb9, 0x3e, 0x63, 0xb4,
  3374. },
  3375. {
  3376. 0xd6, 0x29, 0x2c, 0x76, 0x33, 0xac, 0xc7, 0xa1, 0x7e, 0x79, 0x7a, 0x14,
  3377. 0x99, 0x43, 0xe6, 0xe4,
  3378. },
  3379. {
  3380. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3381. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3382. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3383. },
  3384. {
  3385. 0xea, 0x9f, 0xf3, 0x34, 0x4c, 0xba, 0x86, 0x34, 0xe8, 0x05, 0x8f, 0x09,
  3386. 0x35, 0x10, 0x51, 0x9c, 0x4c, 0xb9, 0x3a, 0x1a, 0xb4, 0x7c, 0x31, 0x23,
  3387. 0x67, 0x42, 0x95, 0x28, 0x0a, 0x26, 0x30, 0x9c,
  3388. },
  3389. {
  3390. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3391. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3392. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3393. },
  3394. {
  3395. 0xe9, 0x8a, 0x2d, 0x67, 0xd2, 0xd5, 0x2d, 0xc6, 0x12, 0x43, 0x7c, 0x57,
  3396. 0x87, 0xad, 0xad, 0x2f, 0x5d, 0xaa, 0x82, 0x90, 0x42, 0x3c, 0x45, 0xe5,
  3397. 0x90, 0x94, 0x55, 0xe7, 0x55, 0xf2, 0xd4, 0xa7, 0x29, 0xa6, 0xe6, 0xcb,
  3398. 0x42, 0xf3, 0x6b, 0x0e, 0x40, 0x57, 0x1f, 0x1d, 0x77, 0x21, 0xb4, 0x0e,
  3399. 0x3d, 0x4f, 0x77, 0x3d, 0x84, 0x5e, 0x72, 0x6e, 0x8e, 0x1e, 0x5b, 0xd9,
  3400. 0x50, 0x4a, 0x94, 0x59, 0x43, 0xf3, 0x34, 0x60, 0x3f, 0x28, 0x2b, 0xfc,
  3401. 0x7c, 0x5d, 0x8b, 0x2a, 0x6a, 0x1c, 0x82, 0xcc, 0xa1, 0xee, 0x94, 0x3b,
  3402. 0xe6, 0xc4, 0x64, 0xbc, 0xf8, 0xa4, 0xdf, 0x47, 0x0d, 0x3d, 0xdc, 0xd7,
  3403. 0xea, 0xb1, 0xe8, 0xbb, 0xa0, 0x09, 0x0e, 0x53, 0x7c, 0x36, 0x70, 0xf4,
  3404. 0x24, 0x43, 0x8e, 0x3a, 0x0b, 0x19, 0x72, 0x97, 0xa7, 0xa1, 0x6d, 0x12,
  3405. 0xa2, 0x82, 0x55, 0x8d, 0x55, 0x6f, 0x3b, 0x5e,
  3406. }
  3407. };
  3408. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3409. result = do_hmac_prng_pr_false_test(64, &vec);
  3410. TC_END_RESULT(result);
  3411. return result;
  3412. }
  3413. unsigned int test_65(void)
  3414. {
  3415. unsigned int result = TC_PASS;
  3416. const struct hmac_prng_test_vector vec = {
  3417. 32,
  3418. 16,
  3419. 0,
  3420. 0,
  3421. 128,
  3422. {
  3423. 0x94, 0x7b, 0x3f, 0x93, 0xa6, 0x01, 0xda, 0x15, 0xaa, 0xec, 0x58, 0x07,
  3424. 0x8d, 0x19, 0x8c, 0x20, 0xc9, 0x13, 0x79, 0xd5, 0xbf, 0x1c, 0x0d, 0xea,
  3425. 0x32, 0x96, 0x91, 0xf4, 0x7b, 0x3c, 0xdb, 0x40,
  3426. },
  3427. {
  3428. 0x97, 0x69, 0x2e, 0xbc, 0x8c, 0x9b, 0x04, 0x5b, 0x73, 0xe8, 0x23, 0x50,
  3429. 0x0e, 0xba, 0x50, 0x77,
  3430. },
  3431. {
  3432. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3433. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3434. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3435. },
  3436. {
  3437. 0x59, 0x9f, 0xe8, 0x4d, 0x8a, 0x84, 0xc3, 0x06, 0xee, 0x33, 0x4a, 0x3b,
  3438. 0x44, 0x30, 0x05, 0xe3, 0x3b, 0xa0, 0xf8, 0xf5, 0x9b, 0x63, 0x6e, 0x67,
  3439. 0xd7, 0x4f, 0x8c, 0x59, 0x65, 0x58, 0xcf, 0x8e,
  3440. },
  3441. {
  3442. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3443. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3444. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3445. },
  3446. {
  3447. 0x38, 0x8d, 0xe4, 0xee, 0x5c, 0x19, 0xad, 0x97, 0x2c, 0x65, 0x0c, 0x86,
  3448. 0x5e, 0xc3, 0x4f, 0x7d, 0xb6, 0x69, 0x66, 0x9d, 0x32, 0x6f, 0x0c, 0x55,
  3449. 0x89, 0xc5, 0xab, 0x24, 0x10, 0xd6, 0x4f, 0x2d, 0x27, 0x14, 0x84, 0x3c,
  3450. 0xf5, 0xa2, 0x28, 0x8e, 0x37, 0x95, 0xfa, 0xe7, 0xf5, 0x41, 0xfd, 0xa4,
  3451. 0xbd, 0x4d, 0x48, 0x84, 0x01, 0x4c, 0xc7, 0x75, 0x8e, 0xc2, 0x97, 0x3b,
  3452. 0xce, 0x26, 0xa6, 0xb4, 0xc4, 0xda, 0x09, 0x11, 0xde, 0xba, 0x01, 0x64,
  3453. 0x24, 0x63, 0x0d, 0x30, 0xd5, 0xf3, 0x53, 0x6e, 0x4e, 0x79, 0x77, 0xdf,
  3454. 0xc7, 0x0f, 0x40, 0xb5, 0x30, 0x8f, 0x38, 0xef, 0x6e, 0x5a, 0x3d, 0xd7,
  3455. 0xa0, 0x60, 0xda, 0x5c, 0x68, 0xcc, 0xe2, 0x75, 0x05, 0x74, 0x5f, 0x57,
  3456. 0x68, 0x24, 0x5a, 0xb3, 0xc3, 0x1f, 0xdc, 0xc5, 0x40, 0xd3, 0x76, 0x7b,
  3457. 0x9f, 0xa6, 0x2d, 0x41, 0x71, 0xc7, 0x15, 0xc7,
  3458. }
  3459. };
  3460. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3461. result = do_hmac_prng_pr_false_test(65, &vec);
  3462. TC_END_RESULT(result);
  3463. return result;
  3464. }
  3465. unsigned int test_66(void)
  3466. {
  3467. unsigned int result = TC_PASS;
  3468. const struct hmac_prng_test_vector vec = {
  3469. 32,
  3470. 16,
  3471. 0,
  3472. 0,
  3473. 128,
  3474. {
  3475. 0xc8, 0x68, 0xe7, 0x22, 0x1f, 0xe5, 0x65, 0xc1, 0x3e, 0x46, 0xba, 0x78,
  3476. 0x14, 0x17, 0xda, 0x8c, 0xf4, 0x2b, 0xed, 0xc9, 0xbf, 0x5e, 0xca, 0xb8,
  3477. 0x98, 0xf6, 0x4f, 0x53, 0xa8, 0xe5, 0xbe, 0x2f,
  3478. },
  3479. {
  3480. 0x49, 0x24, 0x05, 0x87, 0xc2, 0xf9, 0xe2, 0xc9, 0xaf, 0xae, 0x3a, 0x7a,
  3481. 0xa7, 0x06, 0x20, 0x80,
  3482. },
  3483. {
  3484. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3485. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3486. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3487. },
  3488. {
  3489. 0xa6, 0x98, 0x20, 0x3c, 0x5f, 0x5e, 0x55, 0x9d, 0x5f, 0x08, 0xdf, 0x28,
  3490. 0x23, 0x0a, 0xb3, 0xb1, 0xff, 0x40, 0x59, 0xce, 0x8e, 0x8b, 0x2b, 0x96,
  3491. 0x76, 0x88, 0x03, 0x13, 0xd1, 0x34, 0xf7, 0xfd,
  3492. },
  3493. {
  3494. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3495. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3496. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3497. },
  3498. {
  3499. 0x64, 0xe6, 0x9b, 0x9c, 0xdd, 0x82, 0x94, 0x57, 0x3c, 0x67, 0xe0, 0x6c,
  3500. 0xd6, 0x62, 0x66, 0x2e, 0x98, 0xcb, 0xca, 0xb9, 0xb8, 0xfc, 0x8c, 0x9a,
  3501. 0xd7, 0xd3, 0x66, 0xc3, 0xf9, 0x78, 0xf1, 0x0a, 0xf1, 0xbb, 0xd9, 0x93,
  3502. 0x4a, 0xdb, 0x9a, 0x31, 0x22, 0x8d, 0x0c, 0x51, 0xa2, 0x68, 0xac, 0xb7,
  3503. 0x76, 0xe3, 0xdf, 0x0d, 0x9a, 0x5d, 0xc4, 0x13, 0xda, 0x62, 0x36, 0xe7,
  3504. 0x7c, 0x15, 0xf2, 0x2d, 0xff, 0x41, 0x09, 0x11, 0x5e, 0x2e, 0x7a, 0x09,
  3505. 0xd4, 0x5d, 0x43, 0xf5, 0xa2, 0x69, 0x10, 0x4a, 0x71, 0x7e, 0x10, 0x1f,
  3506. 0x2c, 0x84, 0x27, 0x04, 0x9a, 0xb6, 0x58, 0x8d, 0xaf, 0x89, 0x07, 0xe3,
  3507. 0x31, 0x68, 0xee, 0xbe, 0xde, 0xcc, 0x47, 0x01, 0x90, 0x65, 0x57, 0xf9,
  3508. 0x7f, 0xd3, 0x4b, 0x72, 0x46, 0x42, 0xf2, 0x85, 0xc0, 0xb0, 0x6a, 0xbc,
  3509. 0x3c, 0xa1, 0x5b, 0xe6, 0x87, 0xc9, 0xbe, 0x1d,
  3510. }
  3511. };
  3512. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3513. result = do_hmac_prng_pr_false_test(66, &vec);
  3514. TC_END_RESULT(result);
  3515. return result;
  3516. }
  3517. unsigned int test_67(void)
  3518. {
  3519. unsigned int result = TC_PASS;
  3520. const struct hmac_prng_test_vector vec = {
  3521. 32,
  3522. 16,
  3523. 0,
  3524. 0,
  3525. 128,
  3526. {
  3527. 0x5b, 0x75, 0xc3, 0xc8, 0x00, 0x0a, 0x81, 0x72, 0x18, 0x24, 0xe9, 0x67,
  3528. 0x66, 0x62, 0x85, 0x12, 0x57, 0xff, 0x31, 0x5b, 0x9f, 0x20, 0x65, 0x63,
  3529. 0x1e, 0x4b, 0x1c, 0x31, 0xa8, 0x24, 0xed, 0x0f,
  3530. },
  3531. {
  3532. 0x18, 0x71, 0xbf, 0x15, 0xff, 0x16, 0xe9, 0x4c, 0x9c, 0x8d, 0x93, 0xda,
  3533. 0x29, 0x51, 0x55, 0x66,
  3534. },
  3535. {
  3536. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3537. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3538. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3539. },
  3540. {
  3541. 0x99, 0x48, 0x67, 0xb4, 0x13, 0x45, 0x9c, 0x17, 0xa1, 0xe5, 0x07, 0x69,
  3542. 0xcb, 0x2d, 0xc3, 0x0a, 0x00, 0x12, 0xc8, 0xd5, 0x94, 0x74, 0x2e, 0xd4,
  3543. 0xea, 0x2c, 0x2a, 0xc4, 0x34, 0xbe, 0x33, 0x86,
  3544. },
  3545. {
  3546. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3547. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3548. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3549. },
  3550. {
  3551. 0x2b, 0x40, 0xdb, 0x08, 0xa5, 0xe1, 0x5e, 0xb1, 0x81, 0x7f, 0x05, 0x14,
  3552. 0x1c, 0xb0, 0xb5, 0x86, 0x46, 0x84, 0xea, 0x4e, 0x10, 0x04, 0xc2, 0x60,
  3553. 0x98, 0xb4, 0x83, 0x11, 0x9b, 0xde, 0x01, 0x75, 0x26, 0xdf, 0x8d, 0x39,
  3554. 0x3a, 0xbd, 0x6a, 0x26, 0x02, 0xf4, 0x2f, 0xe3, 0x52, 0x24, 0xea, 0x7d,
  3555. 0xee, 0xd2, 0xf6, 0x40, 0x3d, 0x92, 0xc4, 0x1d, 0xf8, 0x01, 0xab, 0x93,
  3556. 0x65, 0xce, 0x24, 0xa6, 0xa9, 0xae, 0xa9, 0x08, 0xdc, 0xf6, 0x11, 0x3e,
  3557. 0x02, 0xcb, 0x67, 0xae, 0x13, 0x01, 0x5b, 0x61, 0x74, 0xf2, 0x2c, 0xd9,
  3558. 0x43, 0x31, 0xa4, 0x79, 0xab, 0x03, 0xb7, 0xa1, 0x9d, 0xe2, 0x81, 0xe0,
  3559. 0x69, 0xa1, 0x7b, 0x60, 0x0c, 0x66, 0x49, 0xd7, 0xb8, 0x8e, 0x5b, 0xa3,
  3560. 0xf3, 0x40, 0xfb, 0xdb, 0x53, 0x7a, 0x9e, 0x45, 0x81, 0x49, 0x6c, 0x8e,
  3561. 0xaa, 0x40, 0xe5, 0xb8, 0x88, 0x62, 0xc4, 0xb0,
  3562. }
  3563. };
  3564. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3565. result = do_hmac_prng_pr_false_test(67, &vec);
  3566. TC_END_RESULT(result);
  3567. return result;
  3568. }
  3569. unsigned int test_68(void)
  3570. {
  3571. unsigned int result = TC_PASS;
  3572. const struct hmac_prng_test_vector vec = {
  3573. 32,
  3574. 16,
  3575. 0,
  3576. 0,
  3577. 128,
  3578. {
  3579. 0xbb, 0x44, 0x58, 0xcc, 0xeb, 0x0d, 0xce, 0x73, 0x32, 0xf3, 0x0c, 0xe9,
  3580. 0x0f, 0x69, 0xd8, 0x28, 0x25, 0xb5, 0x47, 0xbb, 0x51, 0x2a, 0xfb, 0xae,
  3581. 0x3e, 0x1c, 0xba, 0xaa, 0x4c, 0x17, 0x2b, 0x7b,
  3582. },
  3583. {
  3584. 0x60, 0xbd, 0x6a, 0x33, 0xbe, 0xe6, 0x1d, 0x1a, 0x9b, 0xbf, 0xdd, 0xfe,
  3585. 0xe6, 0x0f, 0x7a, 0x18,
  3586. },
  3587. {
  3588. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3589. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3590. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3591. },
  3592. {
  3593. 0xe8, 0x8a, 0x2a, 0xee, 0x17, 0xcc, 0x49, 0x16, 0x40, 0xf2, 0xe0, 0xa6,
  3594. 0x93, 0xf0, 0x3e, 0xbc, 0x48, 0xa9, 0x57, 0x90, 0x31, 0x86, 0x1d, 0xf3,
  3595. 0x1c, 0xdb, 0x42, 0x64, 0x99, 0x7f, 0x8a, 0x64,
  3596. },
  3597. {
  3598. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3599. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3600. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3601. },
  3602. {
  3603. 0x5b, 0xea, 0x97, 0xa6, 0xda, 0xae, 0xe5, 0x40, 0xab, 0x6d, 0x41, 0x7c,
  3604. 0xa4, 0x58, 0x7c, 0x19, 0x8f, 0x58, 0x9d, 0xb5, 0xac, 0x72, 0xb4, 0xf1,
  3605. 0x38, 0x4b, 0x1b, 0x1d, 0x8c, 0x03, 0xec, 0x73, 0xb2, 0x97, 0x93, 0x9f,
  3606. 0x5a, 0x8b, 0x82, 0x40, 0xfd, 0x10, 0x33, 0xca, 0xce, 0x0e, 0x97, 0x1e,
  3607. 0x3c, 0x3f, 0x49, 0x23, 0x9b, 0x16, 0x85, 0x76, 0xf8, 0x3d, 0xce, 0x89,
  3608. 0x53, 0x37, 0x87, 0xfc, 0xb7, 0x25, 0x37, 0xb3, 0x2f, 0x58, 0x5d, 0xf1,
  3609. 0x35, 0x50, 0x64, 0xf7, 0xd7, 0x37, 0xb6, 0xc2, 0x52, 0x59, 0x5f, 0x16,
  3610. 0xc4, 0x2d, 0x77, 0xb8, 0x37, 0xfb, 0x7d, 0x4d, 0x44, 0xbd, 0x84, 0xdb,
  3611. 0xe8, 0x4d, 0x0b, 0xb5, 0xa4, 0x22, 0x44, 0x87, 0xfa, 0xe3, 0xca, 0x26,
  3612. 0xe9, 0x30, 0xe5, 0x4c, 0x27, 0xe2, 0xeb, 0xdd, 0xe9, 0x92, 0xe7, 0x6d,
  3613. 0xc4, 0xc4, 0x07, 0x77, 0x7a, 0xa4, 0xbd, 0x11,
  3614. }
  3615. };
  3616. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3617. result = do_hmac_prng_pr_false_test(68, &vec);
  3618. TC_END_RESULT(result);
  3619. return result;
  3620. }
  3621. unsigned int test_69(void)
  3622. {
  3623. unsigned int result = TC_PASS;
  3624. const struct hmac_prng_test_vector vec = {
  3625. 32,
  3626. 16,
  3627. 0,
  3628. 0,
  3629. 128,
  3630. {
  3631. 0x7e, 0x70, 0x38, 0x1b, 0xfb, 0xa7, 0x80, 0x7b, 0xc7, 0x73, 0xe2, 0xcd,
  3632. 0x68, 0x3f, 0x90, 0xc7, 0xad, 0x60, 0x6d, 0xcf, 0x46, 0x27, 0x67, 0x98,
  3633. 0x8b, 0x3f, 0x6c, 0x75, 0x8f, 0x5c, 0x79, 0x5d,
  3634. },
  3635. {
  3636. 0x7e, 0x5a, 0xb4, 0x42, 0x70, 0x29, 0xe9, 0x9d, 0xf2, 0x20, 0x1d, 0x81,
  3637. 0xc3, 0xff, 0x28, 0x4e,
  3638. },
  3639. {
  3640. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3641. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3642. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3643. },
  3644. {
  3645. 0xe0, 0xdd, 0x5b, 0x4e, 0x7c, 0xa7, 0x2a, 0xfd, 0xe5, 0x3c, 0x16, 0xb8,
  3646. 0x22, 0x54, 0x03, 0xbb, 0x6e, 0x74, 0x97, 0x42, 0xf3, 0xe3, 0x88, 0x96,
  3647. 0xfb, 0xf8, 0xf1, 0x8b, 0x7c, 0xe6, 0xf7, 0x99,
  3648. },
  3649. {
  3650. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3651. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3652. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3653. },
  3654. {
  3655. 0x8a, 0xf2, 0x7c, 0x16, 0x3d, 0x25, 0xec, 0xf4, 0xf5, 0x39, 0x94, 0x4d,
  3656. 0x94, 0x50, 0xf5, 0x11, 0x6e, 0xa8, 0xaa, 0x7f, 0x97, 0x36, 0x1c, 0x69,
  3657. 0x6f, 0x8d, 0xc7, 0xd8, 0xb3, 0xaf, 0xe6, 0xff, 0xc0, 0x20, 0x14, 0x59,
  3658. 0xa1, 0x73, 0x3d, 0x9e, 0xe0, 0x9b, 0x2e, 0x45, 0xf3, 0xb6, 0xcd, 0x5f,
  3659. 0x45, 0xd9, 0xf9, 0xf4, 0x5f, 0xdc, 0x66, 0x2b, 0x56, 0x90, 0x59, 0x89,
  3660. 0x1f, 0x2e, 0x9e, 0xbc, 0x74, 0x0f, 0x78, 0x40, 0x4a, 0x0b, 0xb1, 0xc4,
  3661. 0x6a, 0x6b, 0xfe, 0xee, 0xed, 0x9c, 0x6b, 0x55, 0x2c, 0x5c, 0x46, 0x8a,
  3662. 0x49, 0x96, 0xad, 0x41, 0xcf, 0xff, 0x77, 0xae, 0x4d, 0x98, 0x96, 0xcb,
  3663. 0x80, 0xaf, 0x27, 0x63, 0x5a, 0x4e, 0x2a, 0x1b, 0x5c, 0x07, 0xc1, 0xb5,
  3664. 0x8b, 0x49, 0xc9, 0xa7, 0x68, 0x51, 0x14, 0x4e, 0x69, 0x03, 0x7e, 0x14,
  3665. 0xf7, 0xb8, 0x05, 0x16, 0x13, 0x29, 0xca, 0x15,
  3666. }
  3667. };
  3668. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3669. result = do_hmac_prng_pr_false_test(69, &vec);
  3670. TC_END_RESULT(result);
  3671. return result;
  3672. }
  3673. unsigned int test_70(void)
  3674. {
  3675. unsigned int result = TC_PASS;
  3676. const struct hmac_prng_test_vector vec = {
  3677. 32,
  3678. 16,
  3679. 0,
  3680. 0,
  3681. 128,
  3682. {
  3683. 0x2e, 0x54, 0x32, 0xac, 0xda, 0xb8, 0xca, 0x81, 0xee, 0x56, 0xf3, 0xe6,
  3684. 0x9a, 0x0c, 0x74, 0x8a, 0x72, 0xf8, 0x3e, 0x11, 0xd1, 0x8c, 0x2e, 0xf8,
  3685. 0xfc, 0x8a, 0xad, 0x56, 0x8e, 0x19, 0xe9, 0x1c,
  3686. },
  3687. {
  3688. 0xca, 0x5f, 0x6e, 0xb3, 0x25, 0xe4, 0xa2, 0xb2, 0x4c, 0x00, 0x91, 0x5b,
  3689. 0xc3, 0x7d, 0x99, 0x41,
  3690. },
  3691. {
  3692. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3693. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3694. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3695. },
  3696. {
  3697. 0xae, 0x3d, 0x7a, 0xc0, 0x62, 0x2f, 0x7d, 0xc0, 0x69, 0xe5, 0x2c, 0xbd,
  3698. 0x15, 0x84, 0x47, 0x29, 0x79, 0xe1, 0xc8, 0xa9, 0x6b, 0xf4, 0x61, 0xc8,
  3699. 0xd3, 0x97, 0x6d, 0x8d, 0x53, 0x5c, 0x10, 0xec,
  3700. },
  3701. {
  3702. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3703. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3704. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3705. },
  3706. {
  3707. 0xfd, 0xa5, 0xdb, 0x4b, 0x28, 0xbb, 0xc5, 0xd2, 0xf6, 0xbd, 0x33, 0xac,
  3708. 0x98, 0x39, 0x9b, 0xcf, 0xcf, 0xa4, 0x60, 0x37, 0x47, 0x8c, 0xf2, 0x69,
  3709. 0xbf, 0x35, 0x9d, 0xb2, 0x28, 0x28, 0x06, 0x62, 0x71, 0x8f, 0x6d, 0x4c,
  3710. 0xa4, 0x77, 0xbb, 0x1c, 0xac, 0xa5, 0x67, 0x30, 0x9a, 0xba, 0xab, 0x08,
  3711. 0x32, 0xe7, 0x88, 0x58, 0x84, 0xe8, 0x6c, 0x4e, 0x0b, 0x01, 0x7e, 0x86,
  3712. 0x77, 0x74, 0x9c, 0x5d, 0xb2, 0xc3, 0x3e, 0x65, 0xfa, 0x53, 0x8d, 0xf4,
  3713. 0xae, 0xc4, 0x46, 0xc7, 0xca, 0x72, 0x4a, 0xf1, 0x8e, 0x45, 0x98, 0x36,
  3714. 0x01, 0x78, 0x5f, 0x98, 0x00, 0xa0, 0xc5, 0xb2, 0x3f, 0xea, 0xfb, 0xbd,
  3715. 0x34, 0x9d, 0x20, 0x4a, 0xe5, 0x4b, 0x40, 0xa0, 0x19, 0xa5, 0x7a, 0x83,
  3716. 0x68, 0xf0, 0x7d, 0x70, 0x94, 0x5f, 0x22, 0xbe, 0x24, 0xaa, 0x99, 0x2f,
  3717. 0x93, 0x0f, 0x92, 0xa6, 0x26, 0xbb, 0x22, 0xb6,
  3718. }
  3719. };
  3720. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3721. result = do_hmac_prng_pr_false_test(70, &vec);
  3722. TC_END_RESULT(result);
  3723. return result;
  3724. }
  3725. unsigned int test_71(void)
  3726. {
  3727. unsigned int result = TC_PASS;
  3728. const struct hmac_prng_test_vector vec = {
  3729. 32,
  3730. 16,
  3731. 0,
  3732. 0,
  3733. 128,
  3734. {
  3735. 0xef, 0xfa, 0xaf, 0x06, 0xcd, 0x99, 0x7b, 0x99, 0x78, 0x33, 0x72, 0xc5,
  3736. 0x15, 0x67, 0x2e, 0xde, 0x1a, 0x74, 0x16, 0x22, 0xa2, 0x04, 0x39, 0x53,
  3737. 0x45, 0x1c, 0x33, 0x66, 0x8e, 0x8d, 0xf4, 0x65,
  3738. },
  3739. {
  3740. 0xfb, 0x92, 0x29, 0x10, 0xbc, 0x6c, 0x2a, 0xd0, 0x46, 0x1c, 0x98, 0x09,
  3741. 0xd1, 0x8a, 0x23, 0xf9,
  3742. },
  3743. {
  3744. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3745. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3746. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3747. },
  3748. {
  3749. 0x53, 0xce, 0x26, 0xba, 0xbc, 0x29, 0x4d, 0x2f, 0x1b, 0x48, 0xb5, 0x8a,
  3750. 0xec, 0xad, 0xab, 0x33, 0x08, 0xd8, 0x71, 0x18, 0x92, 0xcf, 0xa3, 0x93,
  3751. 0xf3, 0x58, 0x33, 0x5f, 0xc0, 0xf4, 0x67, 0x4e,
  3752. },
  3753. {
  3754. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3755. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3756. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3757. },
  3758. {
  3759. 0x8a, 0xe5, 0x35, 0xa3, 0xcc, 0x00, 0xda, 0x2c, 0x81, 0x7e, 0x7f, 0x38,
  3760. 0x9a, 0x9b, 0xc9, 0x97, 0xd8, 0xe7, 0x20, 0xe3, 0x94, 0xbc, 0xd3, 0xa6,
  3761. 0xc2, 0x3e, 0xc6, 0x78, 0xed, 0x9d, 0xa4, 0x8d, 0x3d, 0x83, 0xe3, 0x2f,
  3762. 0x73, 0xd8, 0x96, 0xda, 0x58, 0x2a, 0x5c, 0x2b, 0x0f, 0x44, 0x12, 0x7b,
  3763. 0x3f, 0x7e, 0xd3, 0x6d, 0x91, 0xfc, 0x87, 0x7b, 0xbe, 0x91, 0x33, 0x90,
  3764. 0x64, 0x89, 0x0a, 0x4c, 0x2d, 0xb0, 0x5f, 0x16, 0xb5, 0x53, 0x61, 0x1d,
  3765. 0x68, 0x72, 0xc8, 0xbf, 0x40, 0x84, 0x34, 0x4c, 0x5d, 0xae, 0x08, 0xca,
  3766. 0x48, 0x17, 0x2f, 0x98, 0x22, 0x24, 0x4d, 0x4f, 0xf3, 0x72, 0xe0, 0x4c,
  3767. 0xe9, 0x9a, 0xed, 0x28, 0xc3, 0x94, 0x4c, 0x47, 0xfa, 0x43, 0x4e, 0x20,
  3768. 0xe9, 0x97, 0x30, 0xba, 0xf2, 0xbe, 0x9e, 0xe8, 0x52, 0x47, 0xf1, 0xb9,
  3769. 0x4b, 0x12, 0x9c, 0x3f, 0x6c, 0x3e, 0x0f, 0xe0,
  3770. }
  3771. };
  3772. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3773. result = do_hmac_prng_pr_false_test(71, &vec);
  3774. TC_END_RESULT(result);
  3775. return result;
  3776. }
  3777. unsigned int test_72(void)
  3778. {
  3779. unsigned int result = TC_PASS;
  3780. const struct hmac_prng_test_vector vec = {
  3781. 32,
  3782. 16,
  3783. 0,
  3784. 0,
  3785. 128,
  3786. {
  3787. 0x4a, 0x35, 0x42, 0xce, 0xa1, 0xb5, 0xa7, 0xb8, 0x93, 0x85, 0x15, 0x32,
  3788. 0x54, 0x98, 0x84, 0xa9, 0xeb, 0xa9, 0x36, 0x95, 0xbe, 0x8d, 0x76, 0x76,
  3789. 0x1d, 0xb6, 0x98, 0x31, 0xbd, 0x10, 0x53, 0xee,
  3790. },
  3791. {
  3792. 0xff, 0x03, 0x20, 0xc4, 0x7e, 0x47, 0xb4, 0x40, 0x71, 0x8b, 0x80, 0xab,
  3793. 0x61, 0x6d, 0x7f, 0xff,
  3794. },
  3795. {
  3796. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3797. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3798. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3799. },
  3800. {
  3801. 0x86, 0x9a, 0xe8, 0xff, 0x94, 0x9a, 0x10, 0xc9, 0x3c, 0x05, 0xd6, 0x20,
  3802. 0xe4, 0xc4, 0xf1, 0x3d, 0x03, 0x76, 0xee, 0x1e, 0x00, 0xc7, 0x1b, 0xba,
  3803. 0x58, 0x83, 0xb3, 0xbc, 0x41, 0xf5, 0x24, 0x7b,
  3804. },
  3805. {
  3806. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3807. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3808. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3809. },
  3810. {
  3811. 0xad, 0xda, 0x83, 0xc6, 0x11, 0x88, 0x3e, 0x01, 0xf9, 0x58, 0xfe, 0xbf,
  3812. 0xf1, 0x05, 0x2b, 0x65, 0x8b, 0x0c, 0x84, 0xf8, 0x57, 0xad, 0x8d, 0x7d,
  3813. 0x18, 0xde, 0x89, 0x7d, 0xe2, 0xa8, 0xee, 0xaf, 0x39, 0x53, 0xd9, 0x40,
  3814. 0x7c, 0xbc, 0x4c, 0x05, 0x9c, 0x9f, 0xf9, 0xbf, 0xe6, 0x77, 0x44, 0xe1,
  3815. 0x34, 0x06, 0xcb, 0xfb, 0x09, 0xed, 0x31, 0xdc, 0x2f, 0xbc, 0xd9, 0x62,
  3816. 0x61, 0x29, 0xd0, 0xb6, 0xe4, 0xa8, 0x0a, 0xc3, 0xc1, 0xb2, 0x86, 0xd8,
  3817. 0x1f, 0x6f, 0x28, 0x18, 0x3a, 0x3e, 0x8c, 0xe2, 0x66, 0x68, 0x60, 0x05,
  3818. 0x60, 0x08, 0x4f, 0x3a, 0xde, 0xd9, 0x4e, 0xe5, 0x7d, 0xe1, 0x86, 0x57,
  3819. 0xf4, 0x43, 0x50, 0xf9, 0x75, 0x32, 0xa7, 0xc2, 0x5d, 0xcb, 0x99, 0xa8,
  3820. 0x68, 0x3a, 0xc3, 0xd6, 0x32, 0xa3, 0x76, 0x18, 0xeb, 0x9e, 0x2b, 0x18,
  3821. 0x54, 0x5c, 0x00, 0xb0, 0xc2, 0xcd, 0xc3, 0xc0,
  3822. }
  3823. };
  3824. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3825. result = do_hmac_prng_pr_false_test(72, &vec);
  3826. TC_END_RESULT(result);
  3827. return result;
  3828. }
  3829. unsigned int test_73(void)
  3830. {
  3831. unsigned int result = TC_PASS;
  3832. const struct hmac_prng_test_vector vec = {
  3833. 32,
  3834. 16,
  3835. 0,
  3836. 0,
  3837. 128,
  3838. {
  3839. 0xc5, 0x02, 0xa0, 0x09, 0xeb, 0x41, 0xc8, 0xf8, 0x22, 0x06, 0x66, 0xd4,
  3840. 0xe2, 0x33, 0x54, 0xb3, 0xd0, 0x86, 0xc8, 0xf6, 0xe0, 0x96, 0x28, 0xd2,
  3841. 0xa9, 0xbb, 0xe0, 0x72, 0x77, 0x0c, 0x99, 0xee,
  3842. },
  3843. {
  3844. 0xbb, 0xfc, 0xb4, 0x61, 0x3c, 0x45, 0x03, 0x26, 0x8b, 0xc9, 0x07, 0x45,
  3845. 0xdf, 0x3c, 0xc8, 0x90,
  3846. },
  3847. {
  3848. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3849. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3850. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3851. },
  3852. {
  3853. 0x6d, 0xa4, 0xc1, 0x2b, 0x0a, 0xa1, 0x28, 0xa5, 0x8f, 0xee, 0xb8, 0x7a,
  3854. 0xbb, 0xea, 0x04, 0xee, 0xcf, 0xb2, 0xb4, 0x3c, 0x62, 0x93, 0xb8, 0x86,
  3855. 0x3d, 0xe3, 0x16, 0xae, 0x6e, 0xd2, 0x22, 0x21,
  3856. },
  3857. {
  3858. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3859. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3860. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3861. },
  3862. {
  3863. 0xc2, 0xa8, 0x78, 0x4f, 0xbc, 0xe4, 0xfa, 0x6e, 0x15, 0x84, 0x4f, 0xdd,
  3864. 0x8a, 0x84, 0x41, 0xd6, 0xb5, 0x6e, 0xbe, 0x6c, 0x0d, 0xb5, 0x76, 0xd6,
  3865. 0x81, 0xe0, 0x2b, 0xdb, 0x45, 0x9e, 0x4b, 0xaa, 0xdd, 0xe1, 0x7b, 0xd0,
  3866. 0xb8, 0x7d, 0xfa, 0xfc, 0x9f, 0x92, 0x94, 0x1d, 0x7c, 0xa8, 0x99, 0xa1,
  3867. 0x3f, 0x7e, 0x19, 0xeb, 0xd4, 0x92, 0xb3, 0x47, 0xf7, 0x75, 0x0d, 0x7c,
  3868. 0x43, 0xe6, 0x70, 0x28, 0x65, 0x47, 0x48, 0x57, 0x2d, 0xc9, 0x1d, 0x20,
  3869. 0x02, 0xb1, 0x44, 0x27, 0x18, 0x7c, 0xf3, 0x3d, 0x42, 0x1a, 0x56, 0xef,
  3870. 0xef, 0xbd, 0x62, 0x1a, 0x84, 0xde, 0x1e, 0x56, 0x64, 0xdf, 0x1c, 0xb2,
  3871. 0xe7, 0xef, 0xc3, 0x6b, 0xce, 0xf0, 0x3a, 0xca, 0xe1, 0x3b, 0x05, 0xea,
  3872. 0x10, 0x59, 0x76, 0xf8, 0x40, 0xea, 0x75, 0x9d, 0x68, 0x00, 0x4b, 0x40,
  3873. 0x43, 0xe8, 0xca, 0x76, 0xd5, 0x2c, 0x73, 0x66,
  3874. }
  3875. };
  3876. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3877. result = do_hmac_prng_pr_false_test(73, &vec);
  3878. TC_END_RESULT(result);
  3879. return result;
  3880. }
  3881. unsigned int test_74(void)
  3882. {
  3883. unsigned int result = TC_PASS;
  3884. const struct hmac_prng_test_vector vec = {
  3885. 32,
  3886. 16,
  3887. 0,
  3888. 0,
  3889. 128,
  3890. {
  3891. 0x30, 0x4f, 0x12, 0x9a, 0xfb, 0x5b, 0xa1, 0xe0, 0x62, 0xbd, 0x6c, 0x0d,
  3892. 0x85, 0x9e, 0x71, 0x61, 0xe3, 0xb9, 0xea, 0x53, 0xef, 0x52, 0x6f, 0x00,
  3893. 0x32, 0x95, 0x33, 0xb6, 0xbe, 0x12, 0xfa, 0xaf,
  3894. },
  3895. {
  3896. 0x58, 0x56, 0x5e, 0x9d, 0x77, 0x6c, 0x89, 0xab, 0xf6, 0xcd, 0xa5, 0xe7,
  3897. 0x7c, 0xe7, 0xd2, 0x7b,
  3898. },
  3899. {
  3900. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3901. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3902. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3903. },
  3904. {
  3905. 0x19, 0x80, 0xa2, 0xd6, 0x5b, 0x26, 0xb7, 0xed, 0x3b, 0xfc, 0x2b, 0xa9,
  3906. 0x76, 0xf1, 0x4f, 0x14, 0x7d, 0xdb, 0x7f, 0xb1, 0x8c, 0x85, 0x43, 0xd0,
  3907. 0x46, 0x86, 0xe6, 0xad, 0xc0, 0x20, 0xcf, 0x72,
  3908. },
  3909. {
  3910. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3911. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3912. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3913. },
  3914. {
  3915. 0x8c, 0xda, 0x68, 0xca, 0xf5, 0x7c, 0x12, 0xdd, 0x0a, 0x2b, 0x62, 0x8f,
  3916. 0xe8, 0x75, 0xd5, 0xe0, 0xbb, 0xa5, 0x09, 0x81, 0x41, 0x5a, 0x4a, 0xe2,
  3917. 0xd5, 0x88, 0x06, 0xaf, 0x4c, 0x23, 0xf0, 0x59, 0x78, 0xe3, 0x9e, 0x56,
  3918. 0x62, 0x69, 0x07, 0x6c, 0xd4, 0x3e, 0x36, 0xea, 0xa1, 0x02, 0x5e, 0x35,
  3919. 0x13, 0x95, 0x51, 0x4a, 0xe5, 0x07, 0x11, 0xb1, 0x87, 0xed, 0xe5, 0xcf,
  3920. 0xd8, 0x45, 0x8a, 0x7b, 0x8a, 0x7d, 0x97, 0x88, 0xc2, 0x12, 0x0d, 0x1d,
  3921. 0x71, 0xf6, 0x1e, 0xa9, 0x5d, 0x84, 0xa7, 0xff, 0x1e, 0x04, 0xf5, 0x14,
  3922. 0xe8, 0x44, 0x8b, 0xa2, 0xea, 0x6b, 0x95, 0x6a, 0xea, 0xfd, 0xc3, 0xeb,
  3923. 0xb6, 0xc1, 0xcd, 0x0c, 0x7b, 0x7e, 0xc7, 0x6b, 0x95, 0x8e, 0xef, 0xb8,
  3924. 0x12, 0xec, 0xb3, 0xe8, 0x6b, 0x33, 0xa4, 0xd3, 0xa7, 0xb2, 0x97, 0x7f,
  3925. 0x66, 0xb2, 0x14, 0x08, 0x96, 0x62, 0xd1, 0x4a,
  3926. }
  3927. };
  3928. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3929. result = do_hmac_prng_pr_false_test(74, &vec);
  3930. TC_END_RESULT(result);
  3931. return result;
  3932. }
  3933. unsigned int test_75(void)
  3934. {
  3935. unsigned int result = TC_PASS;
  3936. const struct hmac_prng_test_vector vec = {
  3937. 32,
  3938. 16,
  3939. 0,
  3940. 0,
  3941. 128,
  3942. {
  3943. 0xc5, 0x58, 0x92, 0x6a, 0x4d, 0xbb, 0x9f, 0x41, 0xe7, 0x56, 0x89, 0xd9,
  3944. 0xc8, 0xae, 0xc8, 0x67, 0x97, 0xc2, 0x9f, 0x8c, 0x77, 0xe3, 0x56, 0xf0,
  3945. 0x33, 0x1b, 0xed, 0x78, 0x8b, 0x76, 0xe9, 0xb7,
  3946. },
  3947. {
  3948. 0xcf, 0x83, 0xe7, 0x71, 0x58, 0x26, 0xfd, 0x14, 0x89, 0xcc, 0x30, 0x54,
  3949. 0xd3, 0xcd, 0x57, 0x37,
  3950. },
  3951. {
  3952. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3953. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3954. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3955. },
  3956. {
  3957. 0xd1, 0x20, 0x7c, 0x7b, 0x91, 0x4f, 0x5e, 0x87, 0x3e, 0xa0, 0xcf, 0x6f,
  3958. 0x06, 0xdb, 0xd0, 0x2d, 0x59, 0x49, 0x4f, 0x6c, 0x8d, 0x4c, 0x9a, 0xef,
  3959. 0x5a, 0xd1, 0x80, 0xc9, 0xbb, 0xbe, 0xe2, 0x08,
  3960. },
  3961. {
  3962. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3963. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3964. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  3965. },
  3966. {
  3967. 0xd3, 0xa7, 0xd7, 0x8c, 0xfe, 0x76, 0xff, 0x97, 0xbc, 0x54, 0xf7, 0xf6,
  3968. 0x94, 0xf7, 0x2f, 0x31, 0x24, 0x41, 0xd8, 0x60, 0x8d, 0x3c, 0x15, 0x13,
  3969. 0xfd, 0x28, 0xe9, 0x47, 0x42, 0xcb, 0x19, 0x68, 0x3a, 0x02, 0x70, 0x83,
  3970. 0x9b, 0x02, 0x6c, 0xee, 0x52, 0xe4, 0x92, 0x4d, 0xee, 0x99, 0x9e, 0xe8,
  3971. 0xcd, 0x7d, 0xd0, 0x1e, 0xa4, 0x45, 0xcf, 0x91, 0x00, 0x87, 0x98, 0xb8,
  3972. 0xed, 0x64, 0xc8, 0x45, 0x8d, 0x86, 0x78, 0xc3, 0x44, 0xd4, 0xe3, 0xfe,
  3973. 0x32, 0x01, 0xc1, 0xaf, 0x2f, 0xae, 0x3b, 0xea, 0x82, 0xea, 0x3a, 0xf0,
  3974. 0xcd, 0xac, 0x8e, 0x77, 0xb5, 0xe4, 0xd7, 0xc2, 0xb0, 0x84, 0xe4, 0x16,
  3975. 0xe5, 0x32, 0x23, 0x66, 0xad, 0x13, 0xe3, 0x6b, 0x45, 0x5f, 0x04, 0x7b,
  3976. 0xa4, 0x64, 0xcf, 0xf2, 0x87, 0xaf, 0x37, 0x22, 0x97, 0xc6, 0x8b, 0x51,
  3977. 0xaa, 0x47, 0x01, 0x90, 0x19, 0x43, 0xaa, 0xc8,
  3978. }
  3979. };
  3980. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  3981. result = do_hmac_prng_pr_false_test(75, &vec);
  3982. TC_END_RESULT(result);
  3983. return result;
  3984. }
  3985. unsigned int test_76(void)
  3986. {
  3987. unsigned int result = TC_PASS;
  3988. const struct hmac_prng_test_vector vec = {
  3989. 32,
  3990. 16,
  3991. 32,
  3992. 0,
  3993. 128,
  3994. {
  3995. 0x63, 0x3d, 0x32, 0xe3, 0x00, 0x5f, 0x78, 0x11, 0x47, 0x23, 0xb3, 0xea,
  3996. 0x5a, 0xc1, 0x21, 0xba, 0x74, 0xaa, 0x00, 0xc5, 0x2d, 0x93, 0x96, 0x67,
  3997. 0xe3, 0x0c, 0x33, 0x51, 0xb3, 0x85, 0x49, 0xf7,
  3998. },
  3999. {
  4000. 0x37, 0xaf, 0xff, 0x50, 0x4a, 0x2d, 0x8a, 0xc1, 0x68, 0xc6, 0x8e, 0x24,
  4001. 0xd0, 0xfe, 0x66, 0xf6,
  4002. },
  4003. {
  4004. 0x9f, 0x16, 0x99, 0xc9, 0x9d, 0x60, 0xb0, 0x85, 0xbc, 0x61, 0xcb, 0x11,
  4005. 0x0e, 0xf8, 0xab, 0x59, 0x0d, 0x82, 0xa9, 0x70, 0x02, 0x1c, 0x3c, 0x6a,
  4006. 0x5d, 0x48, 0x02, 0x1c, 0x45, 0xde, 0x49, 0x56,
  4007. },
  4008. {
  4009. 0x3e, 0x33, 0x47, 0xc5, 0x47, 0xf1, 0x7f, 0x4d, 0x0b, 0x9f, 0x46, 0x40,
  4010. 0x5a, 0x54, 0xee, 0xdd, 0x7e, 0x98, 0x0d, 0x06, 0xa2, 0x15, 0xec, 0x15,
  4011. 0xe8, 0x93, 0x16, 0xab, 0x74, 0x3b, 0x75, 0x47,
  4012. },
  4013. {
  4014. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4015. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4016. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4017. },
  4018. {
  4019. 0x6e, 0x38, 0xe8, 0x29, 0x62, 0xd7, 0x07, 0xce, 0x9a, 0x6a, 0xc3, 0x83,
  4020. 0xa7, 0x38, 0xa7, 0x48, 0xf9, 0x75, 0xeb, 0x78, 0x56, 0x11, 0xfa, 0xd5,
  4021. 0xe3, 0xf5, 0xa4, 0xfe, 0x44, 0xd7, 0xb5, 0x9a, 0x98, 0x13, 0x7a, 0x2b,
  4022. 0xcd, 0xc3, 0x5f, 0x9e, 0xe9, 0xa1, 0xe2, 0x1b, 0xb1, 0x7d, 0xf1, 0x66,
  4023. 0x5c, 0xd1, 0x39, 0x76, 0x25, 0xa1, 0x77, 0x24, 0x7e, 0x2e, 0x32, 0x9a,
  4024. 0x66, 0x01, 0x40, 0x63, 0x61, 0x41, 0x56, 0x06, 0x10, 0xa3, 0x68, 0xbf,
  4025. 0xd4, 0x99, 0xc2, 0xe2, 0x5b, 0xe3, 0x18, 0xaa, 0x4d, 0xa9, 0xe7, 0xa3,
  4026. 0x52, 0xd1, 0x15, 0xdb, 0x82, 0x82, 0xed, 0x8d, 0x79, 0xec, 0xf9, 0xcd,
  4027. 0x82, 0x03, 0x60, 0xd3, 0xd2, 0xd1, 0xa5, 0x8a, 0x93, 0xe0, 0x40, 0xf5,
  4028. 0x55, 0x48, 0x87, 0xce, 0x6c, 0x98, 0x58, 0xbc, 0x2b, 0xb1, 0x02, 0x24,
  4029. 0x99, 0x80, 0xa8, 0x58, 0x49, 0x8a, 0xbc, 0xda,
  4030. }
  4031. };
  4032. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4033. result = do_hmac_prng_pr_false_test(76, &vec);
  4034. TC_END_RESULT(result);
  4035. return result;
  4036. }
  4037. unsigned int test_77(void)
  4038. {
  4039. unsigned int result = TC_PASS;
  4040. const struct hmac_prng_test_vector vec = {
  4041. 32,
  4042. 16,
  4043. 32,
  4044. 0,
  4045. 128,
  4046. {
  4047. 0xcb, 0x20, 0x15, 0x2e, 0x99, 0xd8, 0xca, 0x5e, 0x80, 0x95, 0xa1, 0x3e,
  4048. 0x72, 0xe0, 0xc1, 0xbb, 0x9e, 0x6c, 0xbe, 0xad, 0xbd, 0x0b, 0xf4, 0xe7,
  4049. 0x0f, 0xc6, 0xfa, 0x3c, 0x81, 0xec, 0x5d, 0x0f,
  4050. },
  4051. {
  4052. 0x0a, 0x55, 0xd4, 0x33, 0xd3, 0x74, 0x4a, 0x2f, 0x38, 0x19, 0x39, 0xbe,
  4053. 0x85, 0xc9, 0x7a, 0x98,
  4054. },
  4055. {
  4056. 0xb5, 0xbd, 0x74, 0x29, 0x59, 0x1e, 0x5e, 0x29, 0x14, 0x53, 0x2a, 0x7d,
  4057. 0xea, 0x75, 0xff, 0x76, 0xca, 0xa3, 0x9f, 0x15, 0x27, 0x9c, 0x73, 0x09,
  4058. 0x2c, 0x2c, 0xac, 0x3b, 0x0d, 0x28, 0xc1, 0x3b,
  4059. },
  4060. {
  4061. 0xd0, 0x8c, 0xa9, 0x6d, 0x74, 0x5f, 0x7e, 0x3a, 0x9f, 0x2a, 0xcb, 0xc1,
  4062. 0xe8, 0x00, 0xa9, 0x81, 0x95, 0x52, 0x2a, 0x4f, 0x7c, 0x60, 0x7a, 0xad,
  4063. 0x62, 0xf3, 0x8b, 0x1f, 0x63, 0x35, 0x4b, 0xd1,
  4064. },
  4065. {
  4066. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4067. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4068. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4069. },
  4070. {
  4071. 0x03, 0xe8, 0xcd, 0x60, 0x76, 0x82, 0x62, 0xcf, 0x4c, 0xc2, 0xf2, 0x95,
  4072. 0x50, 0x6c, 0x24, 0xf0, 0x6f, 0xb3, 0xfd, 0x3a, 0x88, 0x9c, 0x71, 0x52,
  4073. 0x14, 0x51, 0xdf, 0x6f, 0x2e, 0xfa, 0x07, 0x47, 0xff, 0xb8, 0x75, 0x78,
  4074. 0xb7, 0x1b, 0xcf, 0xc3, 0x7d, 0x3a, 0x43, 0xf8, 0x5a, 0xb4, 0xe5, 0xfc,
  4075. 0x02, 0xd2, 0x1a, 0x90, 0xe8, 0x5a, 0xf1, 0x8d, 0x6d, 0x75, 0xe9, 0xfa,
  4076. 0x95, 0xf7, 0xf9, 0x29, 0x42, 0xa2, 0x93, 0xda, 0x5d, 0x31, 0xa6, 0xb7,
  4077. 0x77, 0xf1, 0x10, 0xff, 0x86, 0x27, 0x91, 0x42, 0x8b, 0xa0, 0x1b, 0x3c,
  4078. 0x1b, 0x2f, 0xb4, 0xb2, 0x36, 0x63, 0x18, 0xd2, 0x44, 0xa9, 0x1e, 0xc1,
  4079. 0x30, 0xf4, 0xc0, 0xbd, 0xb8, 0xc4, 0x0c, 0xb7, 0xa6, 0x23, 0xe5, 0xed,
  4080. 0x02, 0x0b, 0xb3, 0x05, 0xa3, 0x8b, 0x13, 0x47, 0x12, 0x15, 0x1b, 0x48,
  4081. 0x91, 0xda, 0x7f, 0xfb, 0x06, 0x91, 0x2f, 0x4b,
  4082. }
  4083. };
  4084. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4085. result = do_hmac_prng_pr_false_test(77, &vec);
  4086. TC_END_RESULT(result);
  4087. return result;
  4088. }
  4089. unsigned int test_78(void)
  4090. {
  4091. unsigned int result = TC_PASS;
  4092. const struct hmac_prng_test_vector vec = {
  4093. 32,
  4094. 16,
  4095. 32,
  4096. 0,
  4097. 128,
  4098. {
  4099. 0xbd, 0xcb, 0xcf, 0x6d, 0x34, 0x75, 0xac, 0x89, 0x03, 0xdd, 0x32, 0xcb,
  4100. 0x12, 0x54, 0x36, 0xa6, 0xf4, 0xce, 0x74, 0x64, 0x49, 0x60, 0x43, 0xa1,
  4101. 0x80, 0xb2, 0x60, 0xd2, 0xa0, 0x0e, 0xed, 0xa1,
  4102. },
  4103. {
  4104. 0x4e, 0x63, 0xef, 0x1d, 0xd0, 0x4d, 0x3e, 0x6c, 0xa8, 0xa8, 0x09, 0x9d,
  4105. 0x7e, 0x3d, 0xa0, 0x95,
  4106. },
  4107. {
  4108. 0xe0, 0xb7, 0x81, 0x6c, 0xae, 0x86, 0x74, 0xb8, 0x73, 0x08, 0x54, 0x1f,
  4109. 0xdd, 0x65, 0xc0, 0xf8, 0x11, 0xb7, 0x80, 0x8f, 0x3f, 0x2f, 0xc1, 0x5f,
  4110. 0x57, 0x7d, 0x64, 0x74, 0x8e, 0xe3, 0x6d, 0x4b,
  4111. },
  4112. {
  4113. 0x04, 0x1d, 0x73, 0x1b, 0x34, 0x97, 0xb4, 0x19, 0x09, 0xde, 0xec, 0xaf,
  4114. 0xff, 0x8b, 0x71, 0x16, 0x08, 0x5d, 0x8e, 0xf2, 0x8c, 0x32, 0xf4, 0x23,
  4115. 0x3f, 0x6c, 0x66, 0x0e, 0x77, 0xa9, 0x9b, 0xb6,
  4116. },
  4117. {
  4118. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4119. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4120. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4121. },
  4122. {
  4123. 0xd1, 0x0f, 0x8e, 0x09, 0xba, 0x93, 0x52, 0x69, 0xd8, 0xc3, 0x87, 0x62,
  4124. 0xad, 0xca, 0xf2, 0x83, 0x08, 0xd2, 0x5d, 0xce, 0xcc, 0x19, 0xff, 0xdb,
  4125. 0xf7, 0x93, 0xa9, 0xc6, 0x75, 0x85, 0xcb, 0x79, 0x1d, 0xf6, 0x5a, 0x24,
  4126. 0xda, 0x8b, 0xa2, 0xb7, 0x79, 0x41, 0xf7, 0x01, 0xde, 0x86, 0x3b, 0xe3,
  4127. 0xd6, 0xf3, 0xc9, 0xd1, 0x3f, 0x44, 0x45, 0x97, 0x19, 0x38, 0x7b, 0x51,
  4128. 0x36, 0x53, 0x46, 0x63, 0x86, 0x2b, 0x70, 0xc7, 0xdc, 0xf9, 0x91, 0x31,
  4129. 0xde, 0x59, 0x25, 0x30, 0xb3, 0xce, 0xdc, 0x61, 0x68, 0x98, 0xd3, 0x65,
  4130. 0x6e, 0x20, 0x64, 0xd8, 0x79, 0x14, 0x9d, 0xb2, 0x54, 0xd2, 0x6e, 0x72,
  4131. 0xc5, 0x46, 0x6a, 0xd5, 0x5b, 0x1a, 0xc6, 0xfe, 0x52, 0x43, 0x86, 0xa0,
  4132. 0x99, 0xaa, 0x64, 0x2a, 0xd0, 0x96, 0xa0, 0x93, 0x3f, 0x92, 0xdb, 0x03,
  4133. 0xe9, 0x41, 0x70, 0xe0, 0x5d, 0xa5, 0x00, 0xe5,
  4134. }
  4135. };
  4136. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4137. result = do_hmac_prng_pr_false_test(78, &vec);
  4138. TC_END_RESULT(result);
  4139. return result;
  4140. }
  4141. unsigned int test_79(void)
  4142. {
  4143. unsigned int result = TC_PASS;
  4144. const struct hmac_prng_test_vector vec = {
  4145. 32,
  4146. 16,
  4147. 32,
  4148. 0,
  4149. 128,
  4150. {
  4151. 0x0c, 0xf0, 0x73, 0x1c, 0x47, 0xca, 0x73, 0xe8, 0xc4, 0x29, 0x42, 0xcc,
  4152. 0x61, 0xf9, 0x98, 0xf5, 0x34, 0x2e, 0x31, 0x8c, 0xb8, 0xed, 0x3b, 0x18,
  4153. 0x69, 0x02, 0x0e, 0x3d, 0xab, 0x1e, 0x12, 0x67,
  4154. },
  4155. {
  4156. 0x60, 0x4c, 0x64, 0x15, 0x4f, 0x91, 0x4e, 0xd0, 0xcf, 0x63, 0xc8, 0x61,
  4157. 0x65, 0x3b, 0x78, 0xd4,
  4158. },
  4159. {
  4160. 0x30, 0x50, 0xb2, 0xdf, 0x2f, 0x59, 0x76, 0x3e, 0x44, 0x3c, 0xaa, 0x92,
  4161. 0x5a, 0x54, 0xde, 0x1e, 0x5c, 0xed, 0x87, 0x59, 0xb5, 0x54, 0xb5, 0xf0,
  4162. 0xf6, 0x8c, 0xb0, 0x1b, 0x41, 0x50, 0xf9, 0x99,
  4163. },
  4164. {
  4165. 0xed, 0xa0, 0x82, 0xed, 0xfa, 0xf4, 0xf9, 0x76, 0x6d, 0xe2, 0x9a, 0xe2,
  4166. 0xcb, 0x93, 0x0f, 0xb1, 0xbc, 0x26, 0xbd, 0xe6, 0xd1, 0x8a, 0xb1, 0x6f,
  4167. 0x66, 0xfb, 0xf4, 0xb0, 0x6d, 0x3e, 0x74, 0x80,
  4168. },
  4169. {
  4170. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4171. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4172. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4173. },
  4174. {
  4175. 0x39, 0xb3, 0xf4, 0x7c, 0x02, 0x4b, 0xc8, 0x4a, 0xad, 0x80, 0x91, 0x13,
  4176. 0x6d, 0x34, 0x1e, 0xba, 0x3a, 0x89, 0xd0, 0x65, 0x77, 0xaa, 0x4f, 0xd3,
  4177. 0xd2, 0x4f, 0x8b, 0x7a, 0x5b, 0xe4, 0x28, 0x0f, 0xdf, 0x62, 0x35, 0x34,
  4178. 0x90, 0xd5, 0xf6, 0x6c, 0x1a, 0x7d, 0x57, 0xcf, 0x19, 0x8a, 0x63, 0x37,
  4179. 0x56, 0xc0, 0x90, 0x71, 0x86, 0xa7, 0x1a, 0x4f, 0xea, 0x41, 0xc3, 0xfa,
  4180. 0x42, 0xef, 0xee, 0xfb, 0x0a, 0xc2, 0x85, 0xea, 0x85, 0x87, 0xf1, 0xa8,
  4181. 0xd8, 0xfb, 0xb7, 0x83, 0xae, 0x62, 0x7c, 0x1e, 0x85, 0x8f, 0xfb, 0xe0,
  4182. 0x51, 0xd6, 0xb7, 0xa2, 0xa5, 0x18, 0xa2, 0x4e, 0x71, 0xd5, 0x54, 0xe8,
  4183. 0xa0, 0xda, 0x3d, 0x54, 0xbc, 0x69, 0xe4, 0xca, 0x94, 0x0b, 0x7c, 0xa3,
  4184. 0x20, 0xc4, 0xbc, 0x44, 0xdf, 0x1e, 0x47, 0x6e, 0x05, 0xe4, 0x89, 0xa2,
  4185. 0xc6, 0x68, 0x70, 0x2b, 0x0b, 0xb8, 0x91, 0x3d,
  4186. }
  4187. };
  4188. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4189. result = do_hmac_prng_pr_false_test(79, &vec);
  4190. TC_END_RESULT(result);
  4191. return result;
  4192. }
  4193. unsigned int test_80(void)
  4194. {
  4195. unsigned int result = TC_PASS;
  4196. const struct hmac_prng_test_vector vec = {
  4197. 32,
  4198. 16,
  4199. 32,
  4200. 0,
  4201. 128,
  4202. {
  4203. 0x97, 0x15, 0x5a, 0x62, 0x4e, 0xe4, 0x2b, 0x97, 0x4c, 0x4b, 0xc9, 0xe0,
  4204. 0xb9, 0xa7, 0x37, 0xeb, 0x79, 0x0c, 0xde, 0x2f, 0x0a, 0x93, 0xf8, 0xef,
  4205. 0x2c, 0x6f, 0xe7, 0x20, 0x15, 0xc5, 0x27, 0x6b,
  4206. },
  4207. {
  4208. 0x44, 0x4d, 0xf2, 0xbe, 0xae, 0x4a, 0xe6, 0xe9, 0xa6, 0x40, 0x41, 0x6f,
  4209. 0xc3, 0x94, 0x8d, 0xde,
  4210. },
  4211. {
  4212. 0x62, 0x5c, 0x7e, 0xf0, 0xfa, 0x30, 0xe0, 0xcb, 0x5c, 0x28, 0xff, 0x3a,
  4213. 0x23, 0x96, 0x63, 0x93, 0x24, 0x29, 0x2b, 0x20, 0x06, 0x9e, 0xcb, 0x1c,
  4214. 0x01, 0x63, 0xd9, 0x66, 0xf2, 0x52, 0x0e, 0x61,
  4215. },
  4216. {
  4217. 0x40, 0x1b, 0x91, 0xbb, 0xd7, 0x26, 0xeb, 0x24, 0xeb, 0x19, 0xb4, 0xf3,
  4218. 0x62, 0x88, 0x19, 0x2a, 0xe0, 0x71, 0x35, 0x91, 0x7d, 0xec, 0x75, 0xb7,
  4219. 0xf7, 0x75, 0x81, 0x77, 0x76, 0x72, 0x98, 0xb7,
  4220. },
  4221. {
  4222. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4223. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4224. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4225. },
  4226. {
  4227. 0x8b, 0x1c, 0x56, 0xcd, 0x41, 0x5d, 0xdf, 0x12, 0x3b, 0xc5, 0xbb, 0x32,
  4228. 0x7f, 0x0e, 0xc4, 0xcf, 0x53, 0xa6, 0x49, 0x83, 0x1d, 0x7c, 0x09, 0x20,
  4229. 0xe7, 0x42, 0x03, 0x3c, 0xe1, 0x83, 0xa4, 0x42, 0x3c, 0x4b, 0x16, 0x2e,
  4230. 0xac, 0xa3, 0x15, 0x7c, 0xb1, 0x94, 0xdc, 0xe0, 0x6a, 0x54, 0x3b, 0xf1,
  4231. 0x55, 0x16, 0x4c, 0x70, 0x41, 0x75, 0x0f, 0xb3, 0xaf, 0xc7, 0x78, 0x92,
  4232. 0xbd, 0x7b, 0x45, 0x2a, 0x20, 0xb6, 0x48, 0x90, 0x18, 0xe5, 0x36, 0x9f,
  4233. 0xce, 0x4e, 0x7e, 0xb7, 0x93, 0x54, 0xea, 0x8a, 0x03, 0x38, 0x80, 0xa6,
  4234. 0xdb, 0x0a, 0x79, 0xee, 0x0c, 0x1c, 0xa1, 0x5d, 0x80, 0x75, 0x12, 0x31,
  4235. 0x2c, 0x3f, 0x2d, 0x82, 0xbd, 0xf0, 0x06, 0x83, 0x64, 0xcc, 0x3e, 0xae,
  4236. 0x76, 0x3b, 0xe2, 0x4e, 0xdb, 0x39, 0x35, 0x6d, 0xc1, 0xa6, 0xd1, 0xc5,
  4237. 0xeb, 0x09, 0x3c, 0xde, 0x4b, 0xf9, 0xa5, 0x89,
  4238. }
  4239. };
  4240. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4241. result = do_hmac_prng_pr_false_test(80, &vec);
  4242. TC_END_RESULT(result);
  4243. return result;
  4244. }
  4245. unsigned int test_81(void)
  4246. {
  4247. unsigned int result = TC_PASS;
  4248. const struct hmac_prng_test_vector vec = {
  4249. 32,
  4250. 16,
  4251. 32,
  4252. 0,
  4253. 128,
  4254. {
  4255. 0x88, 0xe9, 0xbc, 0x0e, 0x56, 0xbb, 0xbf, 0xe8, 0xc0, 0x7f, 0x31, 0x1b,
  4256. 0x95, 0x5d, 0x2b, 0x87, 0x7f, 0xe7, 0x04, 0x7f, 0x3f, 0x85, 0xac, 0x83,
  4257. 0xf9, 0xda, 0x68, 0xac, 0x2a, 0xbe, 0x36, 0xe2,
  4258. },
  4259. {
  4260. 0x2c, 0xf7, 0x59, 0x3a, 0x98, 0x12, 0x25, 0x25, 0xc2, 0x81, 0xd3, 0xce,
  4261. 0xc1, 0xe2, 0xb9, 0x4c,
  4262. },
  4263. {
  4264. 0x0d, 0x28, 0x96, 0x1b, 0x6a, 0xba, 0xd3, 0x01, 0x91, 0xb2, 0x14, 0x70,
  4265. 0xba, 0x1e, 0xe0, 0x0d, 0xa1, 0x70, 0x37, 0x90, 0xdd, 0x8a, 0x15, 0x53,
  4266. 0x73, 0x97, 0xc7, 0x3e, 0x80, 0xeb, 0x7f, 0xbc,
  4267. },
  4268. {
  4269. 0xe3, 0x28, 0x52, 0xb8, 0x1c, 0x80, 0xf3, 0x7d, 0x79, 0xcf, 0xfd, 0x3c,
  4270. 0xae, 0x78, 0x59, 0x10, 0xe7, 0x92, 0x32, 0x81, 0x3d, 0x17, 0x4a, 0x2d,
  4271. 0x14, 0xf0, 0xbf, 0x27, 0x5f, 0x31, 0x29, 0x4b,
  4272. },
  4273. {
  4274. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4275. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4276. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4277. },
  4278. {
  4279. 0x4a, 0x6b, 0x13, 0xbd, 0xe6, 0xcb, 0xf8, 0x66, 0xd1, 0xb6, 0x09, 0x42,
  4280. 0x48, 0x8c, 0xef, 0x40, 0x86, 0x36, 0x7f, 0xd4, 0xe2, 0x44, 0x5f, 0x73,
  4281. 0xed, 0xef, 0x03, 0x28, 0xf6, 0x94, 0x1d, 0x40, 0x84, 0xa4, 0x46, 0x98,
  4282. 0x62, 0x81, 0x2f, 0xf6, 0xe4, 0xd9, 0xe4, 0x19, 0x2e, 0x29, 0xd5, 0x9d,
  4283. 0x56, 0x2e, 0x5d, 0xaf, 0xa0, 0xae, 0x10, 0x94, 0x4f, 0x8b, 0x62, 0xad,
  4284. 0x15, 0xa8, 0xf4, 0x83, 0xd6, 0xd1, 0x0e, 0xed, 0x6c, 0x4f, 0xe4, 0x26,
  4285. 0x45, 0x58, 0x7b, 0x61, 0x25, 0xd8, 0x63, 0x65, 0x37, 0x10, 0xbd, 0x6a,
  4286. 0x21, 0x27, 0x7a, 0xe4, 0x49, 0xb7, 0xd2, 0xa9, 0x79, 0x78, 0x29, 0x74,
  4287. 0xa7, 0x31, 0xda, 0x60, 0x1b, 0x29, 0xbc, 0x8e, 0x31, 0xfa, 0x12, 0x1b,
  4288. 0x8b, 0x7e, 0x95, 0xd1, 0xeb, 0x30, 0xa7, 0x5b, 0x3d, 0x4f, 0xb2, 0x13,
  4289. 0x1e, 0x17, 0xfd, 0xea, 0xa0, 0x39, 0x5e, 0xa6,
  4290. }
  4291. };
  4292. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4293. result = do_hmac_prng_pr_false_test(81, &vec);
  4294. TC_END_RESULT(result);
  4295. return result;
  4296. }
  4297. unsigned int test_82(void)
  4298. {
  4299. unsigned int result = TC_PASS;
  4300. const struct hmac_prng_test_vector vec = {
  4301. 32,
  4302. 16,
  4303. 32,
  4304. 0,
  4305. 128,
  4306. {
  4307. 0xdf, 0x81, 0x88, 0xfe, 0x2b, 0x7b, 0xc5, 0xed, 0x26, 0xf7, 0x47, 0xc9,
  4308. 0x3e, 0xd4, 0x80, 0x24, 0xe3, 0xed, 0x62, 0x75, 0x30, 0x10, 0x7d, 0x94,
  4309. 0x90, 0x6b, 0xb2, 0xde, 0xbd, 0x4f, 0xb9, 0x2b,
  4310. },
  4311. {
  4312. 0x0d, 0xd7, 0x50, 0xc7, 0x4f, 0x83, 0x63, 0xc1, 0x4c, 0x17, 0x2b, 0x40,
  4313. 0x98, 0xf5, 0x20, 0x58,
  4314. },
  4315. {
  4316. 0x8a, 0x9b, 0xa6, 0xbd, 0xb3, 0x05, 0x9e, 0xc8, 0x8b, 0xb2, 0x9e, 0x1c,
  4317. 0x51, 0x60, 0x51, 0xf8, 0xf9, 0x58, 0xb3, 0xc7, 0x75, 0x1f, 0xb3, 0x7a,
  4318. 0x61, 0x6e, 0x9d, 0x4a, 0x6c, 0xf1, 0x7a, 0x79,
  4319. },
  4320. {
  4321. 0x1b, 0x21, 0x45, 0xc0, 0xeb, 0x75, 0x77, 0x50, 0x30, 0xd1, 0x68, 0x1c,
  4322. 0x84, 0x8b, 0x92, 0x49, 0xda, 0xcb, 0x81, 0x37, 0xa3, 0xa0, 0xfe, 0x26,
  4323. 0x54, 0x4d, 0x17, 0xa2, 0x37, 0x4a, 0x51, 0x82,
  4324. },
  4325. {
  4326. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4327. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4328. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4329. },
  4330. {
  4331. 0xb9, 0x25, 0xc2, 0x7c, 0x1b, 0x2a, 0x82, 0xe6, 0x96, 0x9a, 0x90, 0xfe,
  4332. 0x4e, 0x4b, 0x6f, 0x27, 0xc3, 0x69, 0xe8, 0x2b, 0x4b, 0x03, 0x47, 0x9a,
  4333. 0x9a, 0x15, 0x2a, 0xca, 0x12, 0x88, 0xb2, 0x62, 0x42, 0x0f, 0xaa, 0x6c,
  4334. 0x62, 0xda, 0x1f, 0x22, 0x5d, 0xc7, 0xf3, 0x12, 0x5d, 0x42, 0x88, 0x58,
  4335. 0x50, 0x78, 0x8b, 0x26, 0x44, 0x10, 0xc8, 0x14, 0x9e, 0xab, 0xf6, 0xba,
  4336. 0x16, 0x4c, 0x17, 0x32, 0xa2, 0xb6, 0x0b, 0x77, 0xa5, 0x25, 0xec, 0x74,
  4337. 0x5b, 0xac, 0x6e, 0xda, 0x51, 0xec, 0x7d, 0x88, 0xd1, 0x1b, 0x40, 0xc2,
  4338. 0xe1, 0x28, 0x54, 0xd3, 0x92, 0xe7, 0xc6, 0xaf, 0x2f, 0xff, 0x7a, 0xaf,
  4339. 0x15, 0x44, 0xab, 0x30, 0x6a, 0xc3, 0x1b, 0x6d, 0x97, 0x1b, 0x70, 0xa8,
  4340. 0x2a, 0x67, 0x2c, 0x81, 0xe9, 0x28, 0x20, 0x4d, 0x04, 0x96, 0x0e, 0xbf,
  4341. 0xf5, 0xbf, 0x5e, 0x38, 0xaa, 0x89, 0x7f, 0x23,
  4342. }
  4343. };
  4344. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4345. result = do_hmac_prng_pr_false_test(82, &vec);
  4346. TC_END_RESULT(result);
  4347. return result;
  4348. }
  4349. unsigned int test_83(void)
  4350. {
  4351. unsigned int result = TC_PASS;
  4352. const struct hmac_prng_test_vector vec = {
  4353. 32,
  4354. 16,
  4355. 32,
  4356. 0,
  4357. 128,
  4358. {
  4359. 0x6a, 0xeb, 0x84, 0xcf, 0x5f, 0x72, 0x98, 0x2b, 0xf7, 0xb1, 0xef, 0x4c,
  4360. 0xa1, 0x6f, 0x8a, 0x27, 0x96, 0x5c, 0x35, 0xb2, 0xa5, 0x55, 0x61, 0x94,
  4361. 0x6c, 0x6d, 0x2c, 0xf6, 0xa6, 0xf9, 0xe4, 0x1e,
  4362. },
  4363. {
  4364. 0x82, 0x76, 0x07, 0xb8, 0x06, 0xdf, 0x2c, 0x42, 0x37, 0x41, 0x20, 0x9b,
  4365. 0xed, 0x59, 0xb4, 0xeb,
  4366. },
  4367. {
  4368. 0xc2, 0x53, 0x73, 0xb6, 0x1d, 0x8d, 0x58, 0x2f, 0xc2, 0x68, 0xcb, 0xd6,
  4369. 0x49, 0x3a, 0x91, 0x61, 0xee, 0xbe, 0xde, 0x96, 0xc4, 0x3b, 0x02, 0x95,
  4370. 0x28, 0x1c, 0xc8, 0xac, 0x47, 0x38, 0x24, 0xe7,
  4371. },
  4372. {
  4373. 0x57, 0x54, 0x81, 0x26, 0x38, 0x1e, 0xd8, 0x62, 0x67, 0x05, 0xd3, 0x53,
  4374. 0x71, 0x22, 0x80, 0x0c, 0x4c, 0xd9, 0xef, 0x81, 0x32, 0x04, 0x4d, 0xfd,
  4375. 0x0f, 0x8d, 0x27, 0xd5, 0xeb, 0xce, 0x55, 0xd1,
  4376. },
  4377. {
  4378. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4379. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4380. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4381. },
  4382. {
  4383. 0xb2, 0x0c, 0x3a, 0xe8, 0x13, 0x3b, 0x87, 0x20, 0x49, 0x8c, 0x17, 0xfc,
  4384. 0xa0, 0xb9, 0xa2, 0xf7, 0x04, 0x57, 0x26, 0xfd, 0xc1, 0x5e, 0x71, 0xa6,
  4385. 0xd3, 0x9e, 0x18, 0x95, 0x49, 0xb0, 0x2d, 0x39, 0x92, 0xa7, 0x4b, 0xfa,
  4386. 0x9d, 0x68, 0xec, 0xca, 0x5f, 0xf1, 0x71, 0x89, 0x0e, 0xe5, 0xba, 0xfc,
  4387. 0x4e, 0x59, 0xbf, 0xc6, 0x62, 0xfd, 0xb2, 0x45, 0x8e, 0xf2, 0x44, 0xe5,
  4388. 0x4e, 0x03, 0xfa, 0x43, 0xa0, 0x61, 0x67, 0x97, 0xbd, 0xca, 0x83, 0xb6,
  4389. 0xef, 0x8f, 0x36, 0xda, 0xd2, 0x80, 0xc9, 0xdf, 0xb1, 0xca, 0x56, 0xd3,
  4390. 0xaa, 0x5e, 0x2d, 0xa3, 0x2a, 0xaf, 0xe2, 0xf6, 0x89, 0xf5, 0x1a, 0x43,
  4391. 0xc7, 0x54, 0x7d, 0x24, 0xed, 0x94, 0xd0, 0x2a, 0x56, 0x7f, 0x78, 0x55,
  4392. 0xaa, 0xaf, 0xc8, 0xb6, 0x94, 0xea, 0x5f, 0x0b, 0xb5, 0x60, 0x2f, 0x72,
  4393. 0xda, 0xbf, 0x86, 0x56, 0xe7, 0x43, 0x58, 0xb2,
  4394. }
  4395. };
  4396. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4397. result = do_hmac_prng_pr_false_test(83, &vec);
  4398. TC_END_RESULT(result);
  4399. return result;
  4400. }
  4401. unsigned int test_84(void)
  4402. {
  4403. unsigned int result = TC_PASS;
  4404. const struct hmac_prng_test_vector vec = {
  4405. 32,
  4406. 16,
  4407. 32,
  4408. 0,
  4409. 128,
  4410. {
  4411. 0x49, 0xce, 0xab, 0x47, 0xef, 0x95, 0x58, 0x5a, 0xaa, 0xeb, 0x98, 0x06,
  4412. 0x4c, 0x61, 0xe8, 0xa2, 0x89, 0xee, 0xe5, 0x41, 0x2f, 0x4a, 0xf1, 0xfb,
  4413. 0x6e, 0x48, 0xa1, 0x23, 0x58, 0xf9, 0xcf, 0x67,
  4414. },
  4415. {
  4416. 0xd4, 0x8e, 0x4a, 0x8a, 0x61, 0x2c, 0xac, 0x57, 0xfe, 0x7b, 0xc1, 0x78,
  4417. 0x8c, 0x64, 0x83, 0x6b,
  4418. },
  4419. {
  4420. 0x62, 0x1e, 0x31, 0x3b, 0x13, 0x34, 0x80, 0xd5, 0xc4, 0x71, 0xba, 0xe8,
  4421. 0xda, 0x09, 0x7a, 0x03, 0x33, 0xb2, 0xb2, 0xea, 0x23, 0xf8, 0x3c, 0x1b,
  4422. 0x10, 0x28, 0x50, 0xd4, 0x11, 0xd1, 0x51, 0x5c,
  4423. },
  4424. {
  4425. 0x84, 0x40, 0x7b, 0x20, 0xd0, 0xad, 0xc2, 0x2c, 0x07, 0xbf, 0x24, 0x94,
  4426. 0x08, 0x0a, 0xd2, 0x86, 0x93, 0x8b, 0x21, 0x28, 0xf8, 0x24, 0xda, 0xe3,
  4427. 0xe4, 0x4d, 0x3c, 0x71, 0x81, 0x87, 0x02, 0xc0,
  4428. },
  4429. {
  4430. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4431. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4432. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4433. },
  4434. {
  4435. 0xdf, 0xb9, 0xcc, 0xd2, 0x74, 0x93, 0x63, 0xfd, 0x99, 0x3d, 0xf5, 0xdb,
  4436. 0x53, 0x82, 0x6d, 0xc3, 0x6a, 0xdf, 0x4e, 0x04, 0x08, 0x78, 0xf6, 0x85,
  4437. 0x15, 0x14, 0x46, 0x6d, 0xd7, 0x21, 0x4b, 0xa7, 0x0d, 0x35, 0xf4, 0x74,
  4438. 0xb2, 0x2d, 0x5d, 0x18, 0x0d, 0x71, 0xf8, 0xca, 0x00, 0x49, 0xfc, 0x90,
  4439. 0x15, 0x6d, 0x6d, 0x79, 0x67, 0x08, 0x28, 0x0c, 0xe1, 0xd2, 0x25, 0x18,
  4440. 0x4b, 0x06, 0xdb, 0xe3, 0xd7, 0x98, 0xb7, 0xb9, 0x02, 0x85, 0x62, 0xd2,
  4441. 0x22, 0xf1, 0x1e, 0xe8, 0xfe, 0xd9, 0xa9, 0x55, 0x87, 0xa6, 0x53, 0x6e,
  4442. 0x90, 0x7a, 0xde, 0xe3, 0x10, 0x2b, 0x2f, 0x3d, 0x92, 0xdb, 0x24, 0x67,
  4443. 0x37, 0xa9, 0xbc, 0x71, 0xaa, 0xaa, 0x4f, 0x40, 0xcd, 0xa3, 0x3d, 0x33,
  4444. 0xa3, 0x37, 0x9d, 0x2e, 0x8b, 0xfe, 0xd1, 0x76, 0x0e, 0xc1, 0x28, 0x01,
  4445. 0xe7, 0x2a, 0x38, 0x4b, 0x74, 0x8f, 0xfa, 0xf5,
  4446. }
  4447. };
  4448. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4449. result = do_hmac_prng_pr_false_test(84, &vec);
  4450. TC_END_RESULT(result);
  4451. return result;
  4452. }
  4453. unsigned int test_85(void)
  4454. {
  4455. unsigned int result = TC_PASS;
  4456. const struct hmac_prng_test_vector vec = {
  4457. 32,
  4458. 16,
  4459. 32,
  4460. 0,
  4461. 128,
  4462. {
  4463. 0xf3, 0x22, 0xb2, 0x58, 0xc6, 0x29, 0x51, 0xd3, 0x7b, 0xa6, 0x80, 0xab,
  4464. 0xc4, 0x9a, 0x61, 0x98, 0x3f, 0x3f, 0xd8, 0x99, 0x73, 0x94, 0x0c, 0x1d,
  4465. 0x4f, 0x07, 0x65, 0xc9, 0x5d, 0x0d, 0x70, 0x78,
  4466. },
  4467. {
  4468. 0x0b, 0x79, 0xd5, 0xbe, 0xfe, 0x42, 0x85, 0xa7, 0x3e, 0xa4, 0xb4, 0x8e,
  4469. 0x2b, 0xa1, 0x85, 0xc1,
  4470. },
  4471. {
  4472. 0x05, 0x32, 0xbc, 0x7e, 0x99, 0x70, 0x90, 0x06, 0xaa, 0x19, 0x1b, 0x37,
  4473. 0x9a, 0xce, 0xfa, 0x16, 0x45, 0xc6, 0x7d, 0x2f, 0x5b, 0x61, 0xf1, 0x3f,
  4474. 0x36, 0xf8, 0x68, 0xbc, 0xe4, 0x44, 0xa5, 0x29,
  4475. },
  4476. {
  4477. 0x2e, 0x4e, 0x16, 0x74, 0x8e, 0xbf, 0x36, 0x59, 0x02, 0xd9, 0x10, 0xa0,
  4478. 0x1d, 0x9c, 0xa2, 0x4a, 0xeb, 0x8e, 0x3e, 0x54, 0x58, 0xed, 0xfd, 0x88,
  4479. 0xf6, 0xb9, 0x09, 0xc1, 0xff, 0xc7, 0x46, 0x8c,
  4480. },
  4481. {
  4482. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4483. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4484. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4485. },
  4486. {
  4487. 0x85, 0x5e, 0xe8, 0xe0, 0x06, 0x0c, 0xb8, 0xb4, 0xfc, 0x56, 0x92, 0x07,
  4488. 0x3f, 0x62, 0xcc, 0x3e, 0x19, 0xa1, 0x9b, 0x89, 0xdf, 0x2d, 0xf9, 0x7c,
  4489. 0x2a, 0x21, 0x87, 0x9d, 0x74, 0x57, 0x1d, 0x33, 0x62, 0xec, 0xdd, 0x1a,
  4490. 0xd9, 0xe4, 0x64, 0x58, 0xe3, 0x5f, 0x5f, 0x35, 0x80, 0xe7, 0x66, 0x06,
  4491. 0x7e, 0x3d, 0x8f, 0x72, 0x58, 0xd8, 0xee, 0xcb, 0x17, 0xa0, 0x75, 0xf7,
  4492. 0xdc, 0x75, 0x23, 0xa4, 0x78, 0xb5, 0xd1, 0x77, 0xf6, 0x73, 0x65, 0x9e,
  4493. 0x38, 0x87, 0x67, 0x0e, 0xdf, 0x6e, 0x8f, 0x0f, 0xf7, 0x5e, 0x26, 0xd4,
  4494. 0x1a, 0xdf, 0xee, 0x6a, 0xe2, 0x8f, 0xbe, 0x5c, 0x2e, 0x24, 0x7e, 0x10,
  4495. 0x36, 0x24, 0x1e, 0x1f, 0x5b, 0xf3, 0x16, 0xfb, 0xd9, 0xad, 0xb3, 0xc1,
  4496. 0x59, 0x30, 0xe8, 0x42, 0x5a, 0xe7, 0x50, 0x24, 0xc2, 0x77, 0x02, 0x99,
  4497. 0x72, 0xf0, 0xd6, 0xc6, 0x45, 0xb4, 0xa1, 0x17,
  4498. }
  4499. };
  4500. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4501. result = do_hmac_prng_pr_false_test(85, &vec);
  4502. TC_END_RESULT(result);
  4503. return result;
  4504. }
  4505. unsigned int test_86(void)
  4506. {
  4507. unsigned int result = TC_PASS;
  4508. const struct hmac_prng_test_vector vec = {
  4509. 32,
  4510. 16,
  4511. 32,
  4512. 0,
  4513. 128,
  4514. {
  4515. 0x33, 0xa6, 0x8b, 0xad, 0x0f, 0xa3, 0x44, 0xfd, 0x6a, 0x46, 0xf7, 0x5f,
  4516. 0x04, 0x28, 0xcb, 0xdf, 0x27, 0x11, 0xd3, 0xf0, 0xc7, 0xef, 0x0f, 0x6a,
  4517. 0x39, 0x50, 0x73, 0xed, 0x70, 0x89, 0x7b, 0xaa,
  4518. },
  4519. {
  4520. 0x18, 0x92, 0x79, 0x9f, 0xeb, 0x41, 0x0b, 0x9d, 0xd6, 0xe6, 0x9b, 0xf4,
  4521. 0x40, 0x3e, 0xfc, 0x20,
  4522. },
  4523. {
  4524. 0x67, 0x7e, 0xcc, 0xd0, 0xc6, 0xe0, 0x1a, 0x26, 0x3f, 0xc7, 0xd2, 0xe2,
  4525. 0xc2, 0xd0, 0xc6, 0x29, 0x4a, 0x30, 0x7b, 0xf3, 0xee, 0x1b, 0xa3, 0x53,
  4526. 0x72, 0xc2, 0x16, 0x6d, 0x04, 0x04, 0x29, 0x72,
  4527. },
  4528. {
  4529. 0xa6, 0x44, 0x7d, 0xdb, 0xfa, 0xf7, 0xea, 0x07, 0xe1, 0x0a, 0x95, 0xdb,
  4530. 0x1f, 0xae, 0x3e, 0xa8, 0x6d, 0x10, 0x3c, 0xfc, 0xdd, 0xa5, 0x50, 0xf1,
  4531. 0x10, 0x1b, 0x02, 0xdd, 0xc5, 0xac, 0x46, 0x0c,
  4532. },
  4533. {
  4534. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4535. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4536. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4537. },
  4538. {
  4539. 0x22, 0x91, 0x43, 0x3d, 0xf6, 0xfa, 0x57, 0x25, 0x89, 0xc3, 0xa6, 0x51,
  4540. 0x3f, 0x38, 0x1a, 0xf4, 0x21, 0x27, 0x87, 0x49, 0x9b, 0xad, 0x08, 0x64,
  4541. 0xcb, 0x36, 0xd0, 0xeb, 0xee, 0x3b, 0x56, 0xe3, 0x40, 0xab, 0x7b, 0xdb,
  4542. 0x9f, 0x3b, 0x0e, 0x0d, 0x61, 0xdb, 0xa6, 0xb0, 0x14, 0x35, 0x77, 0x21,
  4543. 0x08, 0xbd, 0x89, 0x21, 0xcf, 0xc0, 0x0b, 0xeb, 0xd2, 0x07, 0x66, 0x94,
  4544. 0x41, 0x84, 0x04, 0x6a, 0x84, 0xf5, 0x6c, 0x43, 0x19, 0x69, 0x58, 0x80,
  4545. 0xd2, 0x43, 0x45, 0xac, 0xc6, 0x4f, 0x85, 0x79, 0xd3, 0xca, 0x30, 0xc1,
  4546. 0xf5, 0x4e, 0x41, 0x1c, 0xff, 0x51, 0x5e, 0xd7, 0x2a, 0x8f, 0xca, 0xa5,
  4547. 0xd2, 0xa1, 0x5f, 0xc2, 0x52, 0x6d, 0x5d, 0x11, 0x6f, 0xa1, 0x78, 0x3f,
  4548. 0xff, 0x6d, 0x70, 0xd1, 0x56, 0xb6, 0xe3, 0x3b, 0xf3, 0x1d, 0x21, 0x0d,
  4549. 0x3e, 0xe7, 0x9c, 0x44, 0xb7, 0x3e, 0xaa, 0x7e,
  4550. }
  4551. };
  4552. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4553. result = do_hmac_prng_pr_false_test(86, &vec);
  4554. TC_END_RESULT(result);
  4555. return result;
  4556. }
  4557. unsigned int test_87(void)
  4558. {
  4559. unsigned int result = TC_PASS;
  4560. const struct hmac_prng_test_vector vec = {
  4561. 32,
  4562. 16,
  4563. 32,
  4564. 0,
  4565. 128,
  4566. {
  4567. 0x31, 0x36, 0xf4, 0x42, 0xdd, 0x3c, 0xdc, 0x24, 0x95, 0x38, 0xbd, 0x5f,
  4568. 0x0e, 0xb3, 0x55, 0xc7, 0x67, 0x0a, 0xdd, 0x64, 0x27, 0xd1, 0xe1, 0x80,
  4569. 0x31, 0x7b, 0x7d, 0x64, 0x96, 0x78, 0x0b, 0x83,
  4570. },
  4571. {
  4572. 0x83, 0x65, 0x57, 0x29, 0x4d, 0x84, 0x4f, 0x21, 0x80, 0xd3, 0x7a, 0xc0,
  4573. 0x57, 0xcb, 0xb8, 0x69,
  4574. },
  4575. {
  4576. 0x48, 0x34, 0xc6, 0x8e, 0x72, 0xe2, 0x5a, 0xce, 0xc7, 0xce, 0x57, 0x7e,
  4577. 0xfd, 0x4d, 0xc9, 0x74, 0x6b, 0x8a, 0xbb, 0x89, 0xa4, 0x46, 0xad, 0x39,
  4578. 0xdb, 0x70, 0x42, 0xce, 0xb6, 0xda, 0x9c, 0xde,
  4579. },
  4580. {
  4581. 0xc6, 0x6a, 0x48, 0x65, 0xfb, 0x9b, 0x0f, 0x86, 0xf0, 0x69, 0x6d, 0x4a,
  4582. 0x2e, 0x1e, 0xa5, 0xf7, 0xa3, 0x93, 0x15, 0x7d, 0x09, 0x69, 0x29, 0xdf,
  4583. 0xf4, 0x5f, 0x64, 0xe7, 0x45, 0xd0, 0x6a, 0x3c,
  4584. },
  4585. {
  4586. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4587. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4588. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4589. },
  4590. {
  4591. 0xed, 0xb8, 0x11, 0x68, 0x13, 0x0e, 0xc4, 0x33, 0x01, 0x6e, 0x07, 0x42,
  4592. 0x93, 0x74, 0x07, 0x31, 0x37, 0xe0, 0xec, 0x1d, 0x14, 0x64, 0xe6, 0x3a,
  4593. 0xd2, 0xdd, 0x24, 0xbf, 0xe5, 0xcb, 0x76, 0x3a, 0xa8, 0x79, 0x3d, 0x8f,
  4594. 0xb3, 0x2e, 0xb2, 0xc7, 0x0e, 0xb6, 0x70, 0x53, 0x7f, 0xce, 0x9f, 0x7e,
  4595. 0x53, 0xc4, 0x2d, 0x4b, 0xd8, 0x5d, 0xbe, 0x0b, 0x2f, 0x50, 0xf4, 0x40,
  4596. 0xcb, 0x13, 0x2c, 0xe6, 0xcc, 0x46, 0xfa, 0xe1, 0x08, 0x69, 0xda, 0x2a,
  4597. 0xe6, 0xab, 0x8c, 0x10, 0xc3, 0xa1, 0xff, 0x2e, 0x45, 0x29, 0xe4, 0x6c,
  4598. 0x8f, 0x84, 0x3e, 0x0c, 0xf9, 0x31, 0xb7, 0x70, 0xec, 0xf0, 0xd0, 0x63,
  4599. 0x9f, 0x1a, 0x5d, 0x93, 0x94, 0x29, 0x96, 0x01, 0x71, 0x4c, 0xdd, 0xab,
  4600. 0xea, 0x3d, 0x00, 0x4d, 0x24, 0xda, 0x00, 0x56, 0x66, 0x51, 0x48, 0x48,
  4601. 0xd2, 0xfe, 0x0a, 0x1c, 0x07, 0xc7, 0x8f, 0x11,
  4602. }
  4603. };
  4604. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4605. result = do_hmac_prng_pr_false_test(87, &vec);
  4606. TC_END_RESULT(result);
  4607. return result;
  4608. }
  4609. unsigned int test_88(void)
  4610. {
  4611. unsigned int result = TC_PASS;
  4612. const struct hmac_prng_test_vector vec = {
  4613. 32,
  4614. 16,
  4615. 32,
  4616. 0,
  4617. 128,
  4618. {
  4619. 0x2e, 0x9b, 0xeb, 0x64, 0xfb, 0x0f, 0xd6, 0xfe, 0xa5, 0x9b, 0x58, 0x73,
  4620. 0xdc, 0x0a, 0x94, 0x6e, 0x8a, 0xf6, 0x8a, 0xfb, 0xf8, 0xf1, 0x63, 0x58,
  4621. 0x12, 0x4b, 0x4a, 0x56, 0x79, 0xa1, 0xa8, 0xdb,
  4622. },
  4623. {
  4624. 0x05, 0xfa, 0xc5, 0x86, 0xd8, 0x8f, 0x7d, 0xdd, 0x6f, 0xd8, 0x49, 0xe5,
  4625. 0xbd, 0x93, 0x32, 0xe1,
  4626. },
  4627. {
  4628. 0x81, 0xa6, 0x57, 0xd8, 0x96, 0xe2, 0x94, 0xdb, 0x49, 0x77, 0xb5, 0x26,
  4629. 0x53, 0xb8, 0xea, 0x29, 0xc8, 0x9e, 0xb2, 0xcd, 0xfd, 0xd9, 0x95, 0x67,
  4630. 0x6c, 0x81, 0x35, 0xba, 0x6e, 0x8d, 0xd3, 0x1f,
  4631. },
  4632. {
  4633. 0x0c, 0xc8, 0x1f, 0x75, 0x7d, 0x01, 0x42, 0x73, 0x66, 0xbb, 0x76, 0x4b,
  4634. 0x40, 0x37, 0x8c, 0x10, 0x24, 0xcf, 0x88, 0x13, 0x6b, 0xcc, 0x36, 0x24,
  4635. 0x3c, 0xdf, 0x11, 0x1c, 0x28, 0xd9, 0x76, 0xf8,
  4636. },
  4637. {
  4638. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4639. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4640. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4641. },
  4642. {
  4643. 0xde, 0x24, 0x72, 0x30, 0xbc, 0x5e, 0x80, 0x5a, 0x67, 0x88, 0xa4, 0xce,
  4644. 0x2b, 0xdd, 0x42, 0x87, 0x04, 0xc0, 0x76, 0x68, 0x63, 0x1f, 0x85, 0x91,
  4645. 0x78, 0x12, 0xcb, 0x04, 0xef, 0x3b, 0x76, 0x92, 0xe7, 0x26, 0x3a, 0x43,
  4646. 0x3a, 0x66, 0xcb, 0x78, 0x50, 0x4a, 0xdb, 0x04, 0xf5, 0xb6, 0x03, 0x95,
  4647. 0x68, 0x47, 0x83, 0xf4, 0x1a, 0x3c, 0x93, 0x7a, 0xd0, 0xe1, 0x0c, 0xb6,
  4648. 0x9c, 0x4e, 0x80, 0x95, 0x47, 0x7f, 0xf4, 0x37, 0x8b, 0x8a, 0x3a, 0xe0,
  4649. 0x6c, 0x9a, 0x03, 0xe9, 0x85, 0xbf, 0x14, 0xb9, 0x99, 0xd2, 0x76, 0xa4,
  4650. 0x5c, 0x27, 0x76, 0x2b, 0x4c, 0x09, 0xc5, 0x38, 0x72, 0xfe, 0xfc, 0xff,
  4651. 0xf0, 0x34, 0x96, 0xc1, 0xc8, 0x83, 0x3d, 0xaa, 0x4b, 0xb6, 0x09, 0x28,
  4652. 0xb4, 0x4a, 0x6c, 0x63, 0xaa, 0x44, 0x04, 0x03, 0x51, 0x53, 0x65, 0x90,
  4653. 0x7e, 0xd4, 0xd6, 0xcc, 0x87, 0x87, 0xb8, 0x92,
  4654. }
  4655. };
  4656. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4657. result = do_hmac_prng_pr_false_test(88, &vec);
  4658. TC_END_RESULT(result);
  4659. return result;
  4660. }
  4661. unsigned int test_89(void)
  4662. {
  4663. unsigned int result = TC_PASS;
  4664. const struct hmac_prng_test_vector vec = {
  4665. 32,
  4666. 16,
  4667. 32,
  4668. 0,
  4669. 128,
  4670. {
  4671. 0x51, 0x15, 0xf6, 0x8f, 0xf0, 0x85, 0x32, 0xab, 0xc3, 0x07, 0x7b, 0x0a,
  4672. 0x49, 0xf9, 0xeb, 0x9c, 0x29, 0x02, 0xfa, 0xb5, 0x23, 0x43, 0x9f, 0xb6,
  4673. 0x89, 0x15, 0x7f, 0xf9, 0xf0, 0x39, 0x97, 0xaf,
  4674. },
  4675. {
  4676. 0x41, 0xdf, 0x1a, 0xc0, 0x1f, 0x8c, 0xa0, 0x29, 0xff, 0xf6, 0x03, 0x4d,
  4677. 0x57, 0xd0, 0x93, 0xd0,
  4678. },
  4679. {
  4680. 0x1e, 0x92, 0xf8, 0xea, 0xb8, 0x16, 0x68, 0x25, 0x91, 0x5a, 0x56, 0xbb,
  4681. 0xb0, 0x0c, 0x4b, 0x25, 0x77, 0xcd, 0xc9, 0x9c, 0x36, 0x12, 0x62, 0x69,
  4682. 0xfc, 0xfe, 0xd6, 0x82, 0xb1, 0x2b, 0x06, 0xed,
  4683. },
  4684. {
  4685. 0x0b, 0x24, 0x5e, 0x6e, 0x6e, 0xd2, 0x3e, 0x17, 0x1a, 0x02, 0xd5, 0x2f,
  4686. 0x1f, 0x1a, 0x52, 0x0e, 0xd5, 0x0d, 0x67, 0xae, 0xdc, 0xf9, 0x99, 0xa9,
  4687. 0x06, 0x3e, 0xae, 0x51, 0xb3, 0xb3, 0x3e, 0x08,
  4688. },
  4689. {
  4690. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4691. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4692. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4693. },
  4694. {
  4695. 0x5b, 0x1e, 0xde, 0x46, 0xc5, 0x8a, 0x3d, 0x79, 0xcf, 0x63, 0x05, 0xae,
  4696. 0x59, 0xfc, 0xde, 0xdd, 0x1f, 0x88, 0xf1, 0xfe, 0x35, 0x14, 0xf6, 0xb8,
  4697. 0x16, 0x67, 0xeb, 0x65, 0x91, 0x72, 0xa1, 0x20, 0xb7, 0x0d, 0x12, 0x8d,
  4698. 0x23, 0xcd, 0xcf, 0x2a, 0xdd, 0xb9, 0xb9, 0x7c, 0xda, 0x13, 0x7a, 0xe3,
  4699. 0x02, 0xbc, 0x99, 0x3e, 0x9e, 0x40, 0x5b, 0x50, 0x85, 0xd8, 0xa0, 0xdf,
  4700. 0x2e, 0x4b, 0x9e, 0x0f, 0x4a, 0xcc, 0x64, 0x4a, 0x0b, 0xd4, 0x9c, 0xf6,
  4701. 0x0d, 0xd2, 0x17, 0x0c, 0x0e, 0xab, 0x8d, 0xf5, 0x37, 0x39, 0x78, 0xd8,
  4702. 0x9e, 0x41, 0x5f, 0xf6, 0x89, 0x10, 0x80, 0xae, 0xed, 0xed, 0xe6, 0x26,
  4703. 0x6e, 0xf1, 0x22, 0xd4, 0x48, 0xa0, 0xb2, 0x05, 0x74, 0xcc, 0x51, 0x1c,
  4704. 0x3b, 0xdf, 0x35, 0x38, 0x4f, 0x58, 0x87, 0x8a, 0x04, 0xeb, 0xcc, 0x86,
  4705. 0x2f, 0x2f, 0x1d, 0xd3, 0xc9, 0x3a, 0x10, 0x1a,
  4706. }
  4707. };
  4708. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4709. result = do_hmac_prng_pr_false_test(89, &vec);
  4710. TC_END_RESULT(result);
  4711. return result;
  4712. }
  4713. unsigned int test_90(void)
  4714. {
  4715. unsigned int result = TC_PASS;
  4716. const struct hmac_prng_test_vector vec = {
  4717. 32,
  4718. 16,
  4719. 32,
  4720. 0,
  4721. 128,
  4722. {
  4723. 0xdc, 0x59, 0x04, 0xbd, 0x75, 0x2c, 0x66, 0xe0, 0x25, 0x07, 0x26, 0x22,
  4724. 0x82, 0x4e, 0x4e, 0x78, 0x9d, 0xfa, 0xfe, 0xdc, 0xba, 0xad, 0x33, 0x56,
  4725. 0xa3, 0x44, 0x95, 0x3e, 0x00, 0x2f, 0xf8, 0x45,
  4726. },
  4727. {
  4728. 0x1a, 0xa5, 0x63, 0x88, 0x3b, 0xba, 0x44, 0x4c, 0x88, 0x50, 0x0e, 0xcf,
  4729. 0xcc, 0xa2, 0xaf, 0x94,
  4730. },
  4731. {
  4732. 0xab, 0x75, 0x4f, 0x51, 0xc0, 0x3f, 0x29, 0xeb, 0x77, 0x03, 0xca, 0x5e,
  4733. 0x4c, 0x8b, 0x10, 0xe1, 0x68, 0x49, 0x4a, 0x1f, 0x09, 0xb5, 0x44, 0x17,
  4734. 0x5b, 0xd8, 0x7b, 0x68, 0x7b, 0xf6, 0x9f, 0x7d,
  4735. },
  4736. {
  4737. 0xbb, 0xba, 0x28, 0x0c, 0x3e, 0x22, 0x07, 0x21, 0x2f, 0x18, 0xf7, 0x8d,
  4738. 0xba, 0x28, 0x62, 0x92, 0x0c, 0x2e, 0x1b, 0x69, 0xb8, 0xc9, 0x53, 0x1d,
  4739. 0xcf, 0x8a, 0x5c, 0x98, 0x1b, 0xf4, 0x38, 0x65,
  4740. },
  4741. {
  4742. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4743. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4744. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4745. },
  4746. {
  4747. 0x2f, 0x7d, 0x00, 0x53, 0xb5, 0x08, 0x3a, 0xe0, 0x49, 0x52, 0x4f, 0x18,
  4748. 0xa2, 0x5d, 0x07, 0x83, 0xdb, 0xff, 0xd2, 0xe5, 0x31, 0xf6, 0x73, 0xf8,
  4749. 0x7b, 0xbc, 0x28, 0x71, 0xc0, 0xc4, 0xbf, 0xcc, 0xbe, 0xb5, 0x44, 0xa0,
  4750. 0x9d, 0xc2, 0x08, 0xcf, 0xc7, 0x58, 0x2b, 0x48, 0x84, 0xc9, 0x94, 0xbf,
  4751. 0x84, 0xaa, 0xed, 0x1b, 0x55, 0xcd, 0x88, 0xe9, 0x56, 0x43, 0x02, 0x08,
  4752. 0x8c, 0xb5, 0x49, 0x92, 0xc4, 0x00, 0x26, 0xca, 0xcd, 0xd0, 0x28, 0x31,
  4753. 0x92, 0x6d, 0x11, 0xbf, 0x19, 0x94, 0xe0, 0x8e, 0xf2, 0xe9, 0x40, 0xf1,
  4754. 0xa7, 0xac, 0xc1, 0xcb, 0x3b, 0xdd, 0x4a, 0x3a, 0xfb, 0x2e, 0xe3, 0xa7,
  4755. 0xde, 0xfe, 0xfb, 0x6b, 0xa8, 0x7a, 0x5e, 0xf1, 0x82, 0x8c, 0x84, 0x02,
  4756. 0x86, 0x63, 0x1c, 0xf1, 0xc8, 0x84, 0x22, 0xba, 0x90, 0xe3, 0x95, 0x4b,
  4757. 0x42, 0x1b, 0x0a, 0x86, 0x9a, 0x9f, 0xde, 0xe1,
  4758. }
  4759. };
  4760. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4761. result = do_hmac_prng_pr_false_test(90, &vec);
  4762. TC_END_RESULT(result);
  4763. return result;
  4764. }
  4765. unsigned int test_91(void)
  4766. {
  4767. unsigned int result = TC_PASS;
  4768. const struct hmac_prng_test_vector vec = {
  4769. 32,
  4770. 16,
  4771. 0,
  4772. 0,
  4773. 128,
  4774. {
  4775. 0xea, 0x28, 0x92, 0x6c, 0xd5, 0xdf, 0x4f, 0xef, 0xd5, 0x72, 0xc9, 0x10,
  4776. 0x3d, 0x87, 0xff, 0xb0, 0x4f, 0x59, 0x9d, 0xa9, 0x5e, 0x1e, 0x6f, 0xec,
  4777. 0xb8, 0x4f, 0x53, 0xf7, 0x3f, 0xd0, 0x0d, 0x6c,
  4778. },
  4779. {
  4780. 0xcb, 0x40, 0xe1, 0x66, 0x55, 0xb9, 0xa2, 0xc7, 0x1e, 0x8e, 0x36, 0x77,
  4781. 0xb9, 0xea, 0x6c, 0x6f,
  4782. },
  4783. {
  4784. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4785. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4786. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4787. },
  4788. {
  4789. 0x3d, 0x2d, 0x1d, 0xb8, 0x8b, 0x84, 0x62, 0x78, 0x7a, 0x55, 0x76, 0xc9,
  4790. 0x5f, 0xd6, 0x60, 0x73, 0x4f, 0xb6, 0x81, 0xf8, 0x94, 0xe8, 0xef, 0xc4,
  4791. 0x7e, 0x3b, 0xe3, 0xbf, 0xc3, 0x09, 0x8e, 0x40,
  4792. },
  4793. {
  4794. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4795. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4796. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4797. },
  4798. {
  4799. 0xe9, 0x29, 0xc6, 0xe7, 0x49, 0xc5, 0x17, 0x50, 0x31, 0xdc, 0xc9, 0x26,
  4800. 0xbc, 0xe8, 0xd5, 0x29, 0x14, 0x7b, 0x5e, 0x94, 0x0f, 0x61, 0xd0, 0xba,
  4801. 0x1f, 0x02, 0x83, 0x1c, 0x80, 0xc2, 0x7a, 0x23, 0xcd, 0x4b, 0x5f, 0xfb,
  4802. 0x50, 0x7c, 0x7d, 0x09, 0xa7, 0x7e, 0x4c, 0x84, 0x27, 0xe2, 0x90, 0x10,
  4803. 0xcf, 0x1c, 0x80, 0x21, 0xa8, 0x0c, 0xa2, 0x95, 0x04, 0xca, 0xa3, 0x50,
  4804. 0xa2, 0x7d, 0x6c, 0xa4, 0x55, 0x4f, 0xe4, 0xd8, 0xb0, 0x23, 0x55, 0x54,
  4805. 0xf2, 0x51, 0xa5, 0x9e, 0xc6, 0x72, 0x9d, 0x80, 0x2b, 0x47, 0x30, 0x83,
  4806. 0xb0, 0xbd, 0x6c, 0xa8, 0x3f, 0x6d, 0x94, 0x5b, 0x3d, 0x1d, 0xe2, 0xb7,
  4807. 0x06, 0xbd, 0xcc, 0x3b, 0x50, 0xdd, 0xef, 0x57, 0x84, 0x7f, 0xff, 0x88,
  4808. 0xa4, 0x49, 0x85, 0x86, 0xca, 0x6a, 0xfe, 0x65, 0xe7, 0x6c, 0x2d, 0x97,
  4809. 0xf8, 0x7d, 0xde, 0xa6, 0x6f, 0x55, 0x63, 0xe3,
  4810. }
  4811. };
  4812. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4813. result = do_hmac_prng_pr_false_test(91, &vec);
  4814. TC_END_RESULT(result);
  4815. return result;
  4816. }
  4817. unsigned int test_92(void)
  4818. {
  4819. unsigned int result = TC_PASS;
  4820. const struct hmac_prng_test_vector vec = {
  4821. 32,
  4822. 16,
  4823. 0,
  4824. 0,
  4825. 128,
  4826. {
  4827. 0xbc, 0x3c, 0x34, 0x69, 0x28, 0x92, 0x91, 0x69, 0xc7, 0xa0, 0x0c, 0x6f,
  4828. 0x53, 0x2f, 0x7e, 0xb1, 0xc4, 0xa7, 0x7d, 0x42, 0x19, 0x3b, 0x65, 0x69,
  4829. 0x7b, 0xdd, 0xe5, 0xfe, 0x59, 0xae, 0x45, 0x20,
  4830. },
  4831. {
  4832. 0x1b, 0x2b, 0xa3, 0x3d, 0xa4, 0x9d, 0x3f, 0x6c, 0xf8, 0x40, 0x39, 0xcd,
  4833. 0x99, 0xcc, 0xe5, 0x0f,
  4834. },
  4835. {
  4836. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4837. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4838. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4839. },
  4840. {
  4841. 0xb4, 0x25, 0x4a, 0xab, 0x62, 0xc4, 0x15, 0xd8, 0x32, 0x3d, 0x55, 0x6a,
  4842. 0xec, 0xa6, 0x14, 0x17, 0xb4, 0x1b, 0x09, 0x04, 0x65, 0x48, 0x0d, 0xb8,
  4843. 0xfb, 0x86, 0x4f, 0x57, 0x8f, 0x56, 0x7b, 0x3d,
  4844. },
  4845. {
  4846. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4847. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4848. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4849. },
  4850. {
  4851. 0x26, 0x02, 0xfc, 0xc0, 0xfc, 0xdb, 0x71, 0x04, 0x6d, 0xa4, 0x22, 0x6e,
  4852. 0x12, 0x77, 0xd5, 0xdf, 0x89, 0x22, 0x54, 0x73, 0xe4, 0x56, 0x4f, 0x04,
  4853. 0x7e, 0x60, 0x61, 0x0d, 0x98, 0x1a, 0x18, 0xe2, 0xb4, 0x4d, 0x79, 0xa9,
  4854. 0x3c, 0xd8, 0x64, 0xb8, 0x0f, 0xd3, 0x77, 0x68, 0x5f, 0xb4, 0x19, 0x8e,
  4855. 0xce, 0x5b, 0x22, 0x11, 0xae, 0xba, 0x57, 0xff, 0x49, 0xfd, 0xb6, 0x12,
  4856. 0x82, 0x62, 0xe2, 0x83, 0x6e, 0x7e, 0x81, 0x66, 0xf3, 0xc3, 0xd5, 0xa9,
  4857. 0x3c, 0x68, 0x6a, 0x9b, 0x70, 0xaa, 0x73, 0x9c, 0x66, 0xf8, 0x5f, 0x84,
  4858. 0xc4, 0x4c, 0x31, 0x46, 0x62, 0xd7, 0xaf, 0x17, 0xad, 0x62, 0x5e, 0x55,
  4859. 0xb6, 0xb4, 0x80, 0x1f, 0x0d, 0xda, 0xd8, 0xe6, 0x36, 0x85, 0x4d, 0x22,
  4860. 0x8f, 0x01, 0xba, 0x8f, 0x2f, 0x81, 0x20, 0x76, 0x20, 0x52, 0xd2, 0x89,
  4861. 0x48, 0x19, 0xa9, 0xfb, 0xc7, 0x6d, 0x6e, 0x6f,
  4862. }
  4863. };
  4864. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4865. result = do_hmac_prng_pr_false_test(92, &vec);
  4866. TC_END_RESULT(result);
  4867. return result;
  4868. }
  4869. unsigned int test_93(void)
  4870. {
  4871. unsigned int result = TC_PASS;
  4872. const struct hmac_prng_test_vector vec = {
  4873. 32,
  4874. 16,
  4875. 0,
  4876. 0,
  4877. 128,
  4878. {
  4879. 0x0b, 0xa0, 0x38, 0xbd, 0xb7, 0xad, 0x7b, 0xbe, 0x77, 0xa6, 0xc7, 0xda,
  4880. 0xa3, 0x3a, 0x2b, 0xdf, 0xd9, 0xa1, 0xa5, 0xf3, 0x1c, 0xd2, 0xe7, 0x53,
  4881. 0x77, 0xc7, 0x78, 0xf4, 0x92, 0xf5, 0xb3, 0xcb,
  4882. },
  4883. {
  4884. 0x17, 0xa1, 0x34, 0x23, 0x4a, 0x30, 0xe0, 0x91, 0x70, 0x89, 0x9c, 0x11,
  4885. 0x5b, 0x43, 0xca, 0x16,
  4886. },
  4887. {
  4888. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4889. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4890. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4891. },
  4892. {
  4893. 0xdb, 0x02, 0x0e, 0x00, 0xba, 0xce, 0x41, 0x7b, 0xa7, 0x68, 0x7e, 0x82,
  4894. 0x9c, 0x1f, 0xfc, 0x91, 0xd2, 0x2e, 0xf9, 0x3b, 0x27, 0xbf, 0xe1, 0x10,
  4895. 0x77, 0x32, 0xcf, 0xe0, 0x82, 0xa0, 0x5c, 0xf6,
  4896. },
  4897. {
  4898. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4899. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4900. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4901. },
  4902. {
  4903. 0x01, 0x79, 0x2f, 0x59, 0xd0, 0xa6, 0x3d, 0xef, 0xd8, 0x7d, 0x13, 0x18,
  4904. 0x8b, 0x1a, 0xec, 0xa9, 0x8c, 0x03, 0xb1, 0x1b, 0x7d, 0xd6, 0x69, 0x83,
  4905. 0x28, 0x17, 0x2d, 0xfb, 0x65, 0xcc, 0xb6, 0x95, 0xa1, 0xba, 0xa5, 0x8e,
  4906. 0x44, 0xfd, 0x75, 0x23, 0xfd, 0x17, 0x6d, 0x27, 0x06, 0x64, 0x33, 0x7e,
  4907. 0x59, 0x8a, 0xa4, 0x53, 0x64, 0x3c, 0xe3, 0xc6, 0xeb, 0xad, 0xed, 0xec,
  4908. 0x63, 0x11, 0xe2, 0xe1, 0xa6, 0xed, 0x22, 0x52, 0x47, 0x74, 0x01, 0x04,
  4909. 0x12, 0x53, 0xd3, 0xaf, 0xba, 0xda, 0xc0, 0x6e, 0x4d, 0x06, 0xf4, 0x6d,
  4910. 0xc3, 0xd7, 0xac, 0xe2, 0x87, 0xee, 0x3e, 0x23, 0x28, 0x6b, 0x28, 0x85,
  4911. 0x2e, 0xe0, 0xcf, 0x1e, 0x7a, 0xb3, 0xad, 0xb0, 0xff, 0x10, 0x07, 0xd0,
  4912. 0x77, 0x16, 0xb0, 0x9c, 0x22, 0xeb, 0x13, 0x80, 0xbb, 0xd0, 0xe8, 0xda,
  4913. 0xc4, 0x82, 0xdf, 0x48, 0x0d, 0x41, 0x58, 0x1d,
  4914. }
  4915. };
  4916. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4917. result = do_hmac_prng_pr_false_test(93, &vec);
  4918. TC_END_RESULT(result);
  4919. return result;
  4920. }
  4921. unsigned int test_94(void)
  4922. {
  4923. unsigned int result = TC_PASS;
  4924. const struct hmac_prng_test_vector vec = {
  4925. 32,
  4926. 16,
  4927. 0,
  4928. 0,
  4929. 128,
  4930. {
  4931. 0x2b, 0x37, 0xc7, 0x0c, 0x56, 0xa2, 0xa1, 0xc3, 0xd5, 0x15, 0x0e, 0xdc,
  4932. 0x4c, 0x31, 0x80, 0x7e, 0x17, 0x97, 0x3f, 0x4a, 0xfd, 0x85, 0x32, 0x18,
  4933. 0xe9, 0x94, 0x03, 0xd8, 0xdd, 0x9f, 0x19, 0x5f,
  4934. },
  4935. {
  4936. 0xa5, 0x11, 0x0c, 0x3a, 0x0f, 0x45, 0xba, 0x13, 0xb8, 0xea, 0x3f, 0x77,
  4937. 0xf3, 0x33, 0x58, 0x49,
  4938. },
  4939. {
  4940. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4941. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4942. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4943. },
  4944. {
  4945. 0x14, 0x50, 0xbb, 0xf9, 0xf6, 0xb6, 0x83, 0x30, 0xfa, 0x6c, 0x3e, 0xeb,
  4946. 0x20, 0x18, 0x5e, 0xcb, 0xb3, 0x0c, 0x4c, 0xcb, 0x4b, 0x7b, 0x5e, 0xe3,
  4947. 0x27, 0x12, 0x63, 0xa6, 0x43, 0xd4, 0xf3, 0xe9,
  4948. },
  4949. {
  4950. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4951. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4952. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4953. },
  4954. {
  4955. 0x57, 0x14, 0xe0, 0x8e, 0xcb, 0x34, 0xe5, 0x1c, 0x1b, 0x5b, 0x91, 0x40,
  4956. 0x5c, 0x81, 0x2e, 0x80, 0x10, 0x72, 0x9b, 0x69, 0x95, 0xb6, 0xcc, 0x90,
  4957. 0x14, 0x80, 0x9c, 0x47, 0xc3, 0xb6, 0xba, 0xf1, 0x10, 0x13, 0x45, 0x75,
  4958. 0x14, 0x6c, 0x6b, 0xb4, 0x3d, 0x20, 0xfe, 0x16, 0x38, 0x6d, 0x10, 0x05,
  4959. 0xb5, 0x64, 0x1b, 0xdc, 0x12, 0xb6, 0x45, 0x4f, 0x3b, 0xb7, 0x45, 0x88,
  4960. 0xb6, 0x16, 0xc6, 0x54, 0xbd, 0xca, 0x84, 0xf0, 0x71, 0x36, 0x4e, 0xfd,
  4961. 0x8d, 0x1e, 0xe6, 0x66, 0xcd, 0x60, 0xe4, 0xe2, 0xa8, 0xa3, 0xde, 0x99,
  4962. 0xe3, 0xf5, 0x6a, 0x72, 0x71, 0x4d, 0xb0, 0x4f, 0x15, 0xaa, 0x03, 0x76,
  4963. 0xac, 0xa8, 0xb1, 0x2d, 0x50, 0x31, 0x8c, 0x12, 0x8e, 0x1f, 0x4c, 0xe2,
  4964. 0x58, 0x40, 0x09, 0xed, 0x4d, 0x7e, 0x57, 0x54, 0x4a, 0xba, 0x9d, 0x63,
  4965. 0x12, 0x69, 0xef, 0xf9, 0x95, 0x31, 0x99, 0x23,
  4966. }
  4967. };
  4968. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  4969. result = do_hmac_prng_pr_false_test(94, &vec);
  4970. TC_END_RESULT(result);
  4971. return result;
  4972. }
  4973. unsigned int test_95(void)
  4974. {
  4975. unsigned int result = TC_PASS;
  4976. const struct hmac_prng_test_vector vec = {
  4977. 32,
  4978. 16,
  4979. 0,
  4980. 0,
  4981. 128,
  4982. {
  4983. 0xab, 0x79, 0xf1, 0xff, 0x8a, 0x69, 0xc7, 0xf7, 0xeb, 0x33, 0xe5, 0x7f,
  4984. 0x03, 0xc5, 0xfd, 0x84, 0x58, 0xc0, 0xaf, 0xa9, 0xd2, 0x73, 0x88, 0xb7,
  4985. 0x84, 0x20, 0xa1, 0xac, 0x8d, 0x98, 0xbe, 0x68,
  4986. },
  4987. {
  4988. 0xb3, 0x6b, 0x72, 0xa0, 0x4b, 0xbd, 0xd2, 0x85, 0x96, 0x8d, 0x73, 0x05,
  4989. 0xd3, 0x56, 0xf8, 0xff,
  4990. },
  4991. {
  4992. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4993. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4994. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4995. },
  4996. {
  4997. 0x5c, 0xe8, 0x78, 0x3b, 0x45, 0x3b, 0xa8, 0x56, 0x7e, 0x7b, 0x6d, 0x7a,
  4998. 0x63, 0xac, 0xe5, 0xb4, 0xea, 0xf8, 0x75, 0x62, 0x42, 0x0e, 0x72, 0x9f,
  4999. 0xae, 0x94, 0x39, 0xce, 0x3a, 0x68, 0xdc, 0x86,
  5000. },
  5001. {
  5002. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5003. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5004. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5005. },
  5006. {
  5007. 0x9d, 0x10, 0x40, 0x4b, 0x95, 0x2e, 0x37, 0xc1, 0xd7, 0x00, 0x7b, 0xea,
  5008. 0xb7, 0xf8, 0xf1, 0xfa, 0xf2, 0x36, 0x17, 0x00, 0xf1, 0x38, 0x8b, 0xeb,
  5009. 0xfa, 0x83, 0xd8, 0x57, 0xac, 0xbd, 0x65, 0x20, 0x94, 0x7a, 0x4a, 0x06,
  5010. 0x9f, 0x80, 0x27, 0x8d, 0xae, 0x1d, 0x5a, 0x8e, 0xef, 0xf9, 0xd6, 0x9f,
  5011. 0x63, 0x30, 0x18, 0x31, 0x0e, 0x2a, 0x16, 0xac, 0xb9, 0x08, 0xb3, 0xb0,
  5012. 0x29, 0xb5, 0xbb, 0xef, 0x71, 0xf2, 0xa0, 0x59, 0x70, 0xf5, 0x44, 0xad,
  5013. 0xcf, 0xa6, 0xe7, 0x07, 0x79, 0x9f, 0xc1, 0xe6, 0xb7, 0x8b, 0x96, 0xea,
  5014. 0x1a, 0x57, 0x4f, 0x34, 0xd4, 0x49, 0x94, 0xe6, 0x8d, 0x1c, 0x40, 0xbc,
  5015. 0x2f, 0x39, 0x7a, 0xe1, 0xa4, 0x87, 0x28, 0xa9, 0x2b, 0x8b, 0x4d, 0x46,
  5016. 0xe3, 0x47, 0x22, 0xdd, 0xf2, 0x4d, 0xd3, 0xa0, 0x35, 0x26, 0x2e, 0x90,
  5017. 0xc5, 0xbf, 0xfe, 0x04, 0x89, 0x6b, 0x56, 0x58,
  5018. }
  5019. };
  5020. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5021. result = do_hmac_prng_pr_false_test(95, &vec);
  5022. TC_END_RESULT(result);
  5023. return result;
  5024. }
  5025. unsigned int test_96(void)
  5026. {
  5027. unsigned int result = TC_PASS;
  5028. const struct hmac_prng_test_vector vec = {
  5029. 32,
  5030. 16,
  5031. 0,
  5032. 0,
  5033. 128,
  5034. {
  5035. 0x05, 0xfa, 0xe5, 0xa2, 0x08, 0x03, 0xa1, 0x44, 0x21, 0x11, 0xac, 0x0b,
  5036. 0xd1, 0x81, 0x01, 0x86, 0x31, 0x9d, 0x72, 0x1d, 0x29, 0x46, 0xec, 0xa2,
  5037. 0x64, 0xfb, 0x31, 0xac, 0x8d, 0x8c, 0xbd, 0xa8,
  5038. },
  5039. {
  5040. 0x97, 0xc4, 0x1c, 0xa6, 0x69, 0xe2, 0x23, 0xee, 0xcf, 0xb2, 0x65, 0x99,
  5041. 0x41, 0xff, 0xa1, 0xbc,
  5042. },
  5043. {
  5044. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5045. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5046. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5047. },
  5048. {
  5049. 0xdf, 0x4f, 0x01, 0xea, 0x4a, 0x91, 0xaa, 0x2e, 0xb6, 0x51, 0x55, 0xf1,
  5050. 0x53, 0xdc, 0xa7, 0x0a, 0xfc, 0xe9, 0x8f, 0xf5, 0x6b, 0xff, 0x2a, 0x1c,
  5051. 0x94, 0x11, 0x78, 0xc2, 0xc2, 0xdb, 0xe9, 0x18,
  5052. },
  5053. {
  5054. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5055. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5056. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5057. },
  5058. {
  5059. 0xf3, 0xeb, 0x85, 0xc1, 0x68, 0x37, 0x79, 0x31, 0xa2, 0xf6, 0x77, 0xf1,
  5060. 0x06, 0x4c, 0x82, 0xde, 0x81, 0x5e, 0xff, 0x75, 0x70, 0x1b, 0x03, 0x16,
  5061. 0x06, 0x09, 0x87, 0x94, 0xee, 0xa7, 0x16, 0x96, 0x80, 0x54, 0x85, 0xf7,
  5062. 0x77, 0xad, 0xe2, 0xf2, 0x50, 0xe4, 0x8f, 0xd5, 0x8d, 0x23, 0x58, 0xaa,
  5063. 0x8e, 0xeb, 0xff, 0x59, 0x7d, 0x39, 0x6a, 0x7a, 0xfc, 0xf3, 0x8b, 0xe6,
  5064. 0x5e, 0x0e, 0x78, 0x40, 0x5d, 0x35, 0xee, 0x3d, 0x8d, 0xd2, 0x98, 0x5c,
  5065. 0xd6, 0x2c, 0x26, 0xca, 0xc1, 0xbd, 0x0d, 0x9c, 0x6e, 0x67, 0xac, 0xcf,
  5066. 0xbb, 0xe2, 0xbf, 0xda, 0x87, 0xd5, 0x0d, 0xe6, 0x41, 0x5a, 0x4a, 0x9b,
  5067. 0xaa, 0x27, 0x3f, 0x99, 0x7b, 0xdc, 0xe9, 0x03, 0x27, 0x1a, 0x05, 0x82,
  5068. 0xbe, 0xfc, 0x40, 0x2f, 0x33, 0xfc, 0xab, 0xb6, 0xdb, 0x6f, 0x14, 0x52,
  5069. 0x52, 0xd8, 0x70, 0x55, 0x4d, 0x78, 0x91, 0xd2,
  5070. }
  5071. };
  5072. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5073. result = do_hmac_prng_pr_false_test(96, &vec);
  5074. TC_END_RESULT(result);
  5075. return result;
  5076. }
  5077. unsigned int test_97(void)
  5078. {
  5079. unsigned int result = TC_PASS;
  5080. const struct hmac_prng_test_vector vec = {
  5081. 32,
  5082. 16,
  5083. 0,
  5084. 0,
  5085. 128,
  5086. {
  5087. 0xf0, 0x7a, 0xce, 0x29, 0x9e, 0xa3, 0xc1, 0x04, 0x9d, 0x88, 0x37, 0x8e,
  5088. 0x3a, 0x64, 0xd6, 0xfe, 0x78, 0x1b, 0x87, 0x72, 0xcb, 0xd1, 0x92, 0xc9,
  5089. 0x69, 0x2a, 0x4d, 0x8e, 0x7a, 0xec, 0x19, 0x87,
  5090. },
  5091. {
  5092. 0x87, 0xcd, 0x0d, 0x8f, 0xff, 0x8d, 0xad, 0xec, 0x5b, 0x8b, 0xcc, 0xd0,
  5093. 0x85, 0xf4, 0x1a, 0x1e,
  5094. },
  5095. {
  5096. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5097. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5098. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5099. },
  5100. {
  5101. 0x42, 0xfb, 0x6e, 0x92, 0xee, 0x26, 0x3b, 0x1c, 0x03, 0xa6, 0x3e, 0x5b,
  5102. 0xea, 0xf8, 0x06, 0x62, 0xad, 0x67, 0xb1, 0x95, 0xe1, 0x55, 0xd0, 0xac,
  5103. 0xb7, 0x47, 0x8a, 0x82, 0x93, 0x83, 0x1f, 0xc6,
  5104. },
  5105. {
  5106. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5107. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5108. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5109. },
  5110. {
  5111. 0x3e, 0x3e, 0xeb, 0x53, 0x80, 0x0b, 0x48, 0x74, 0xbd, 0xda, 0x33, 0x1c,
  5112. 0x1e, 0x9b, 0x98, 0xc5, 0x77, 0x00, 0xe7, 0xc2, 0x06, 0xf5, 0xf3, 0xd0,
  5113. 0xf4, 0x21, 0xe3, 0xc4, 0x90, 0x79, 0x70, 0x84, 0xc0, 0x9e, 0xd6, 0xb4,
  5114. 0xbd, 0x58, 0x85, 0xbc, 0xaa, 0x42, 0xe0, 0x36, 0x87, 0x0d, 0x63, 0x3d,
  5115. 0xf8, 0xb3, 0xbf, 0x1d, 0x1b, 0xaf, 0xf5, 0x88, 0xac, 0x9b, 0x24, 0xe0,
  5116. 0x82, 0x7c, 0x26, 0xed, 0x4f, 0x06, 0x18, 0xd9, 0x12, 0xd3, 0x90, 0x04,
  5117. 0xcc, 0xa9, 0x73, 0x9e, 0x0b, 0x99, 0x46, 0xf8, 0x92, 0x7b, 0x58, 0x0b,
  5118. 0xb2, 0xf3, 0x2c, 0x9f, 0x14, 0x2a, 0x7b, 0x1c, 0x09, 0xb3, 0x2a, 0x40,
  5119. 0x5e, 0x1e, 0xf5, 0x20, 0x9c, 0xae, 0x79, 0x0b, 0x07, 0x11, 0xd1, 0x49,
  5120. 0x93, 0x51, 0x09, 0x53, 0x01, 0x8f, 0x27, 0x9c, 0x8c, 0x8d, 0xfd, 0x06,
  5121. 0x64, 0x8c, 0xd1, 0xb1, 0xa5, 0x8b, 0xdf, 0x93,
  5122. }
  5123. };
  5124. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5125. result = do_hmac_prng_pr_false_test(97, &vec);
  5126. TC_END_RESULT(result);
  5127. return result;
  5128. }
  5129. unsigned int test_98(void)
  5130. {
  5131. unsigned int result = TC_PASS;
  5132. const struct hmac_prng_test_vector vec = {
  5133. 32,
  5134. 16,
  5135. 0,
  5136. 0,
  5137. 128,
  5138. {
  5139. 0x96, 0xc3, 0xe7, 0xe5, 0xfe, 0xcc, 0xc0, 0x61, 0x80, 0x59, 0x00, 0x6c,
  5140. 0x73, 0x5a, 0x6c, 0xe0, 0xb5, 0x11, 0x4d, 0x20, 0x8c, 0x79, 0x14, 0x3e,
  5141. 0x1c, 0x9f, 0x8e, 0xf5, 0x03, 0x6e, 0x33, 0x0d,
  5142. },
  5143. {
  5144. 0x6b, 0xbb, 0x09, 0xc4, 0x16, 0x51, 0xc1, 0xc7, 0x8c, 0x36, 0xc2, 0x5e,
  5145. 0x4c, 0xee, 0x8a, 0xa9,
  5146. },
  5147. {
  5148. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5149. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5150. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5151. },
  5152. {
  5153. 0xab, 0xa5, 0x10, 0x86, 0x57, 0x7c, 0x69, 0x48, 0xb8, 0x92, 0xcf, 0x52,
  5154. 0x54, 0x52, 0x0b, 0xf8, 0xd2, 0x40, 0xc2, 0xe3, 0xb0, 0x92, 0x4a, 0xfe,
  5155. 0x69, 0x65, 0xac, 0xfa, 0xbd, 0x7e, 0x0a, 0xbf,
  5156. },
  5157. {
  5158. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5159. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5160. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5161. },
  5162. {
  5163. 0x1d, 0x7e, 0xc4, 0x82, 0x34, 0xbb, 0x2a, 0xaa, 0xf5, 0x4f, 0xbd, 0x55,
  5164. 0xff, 0x06, 0x63, 0xf0, 0xfc, 0x82, 0x82, 0x25, 0x31, 0xf6, 0x66, 0xee,
  5165. 0x7f, 0x7f, 0x5e, 0x25, 0x70, 0x07, 0xf3, 0x04, 0x62, 0x42, 0x8a, 0x51,
  5166. 0x9d, 0x86, 0xa8, 0x76, 0x4b, 0xa0, 0xd6, 0xa2, 0x33, 0x1c, 0xb1, 0x29,
  5167. 0x23, 0x2d, 0x9a, 0x5c, 0x03, 0x18, 0x3b, 0x0f, 0x41, 0x9d, 0x81, 0x3f,
  5168. 0x4c, 0x0e, 0x00, 0xe4, 0xbe, 0x5d, 0xd1, 0x6a, 0x87, 0xa9, 0xfa, 0xec,
  5169. 0x89, 0x15, 0xa3, 0x9f, 0xd2, 0xd4, 0x06, 0xc5, 0x4e, 0xb8, 0xaa, 0xf2,
  5170. 0x28, 0xa0, 0x9a, 0x46, 0xdb, 0x55, 0xfd, 0xa8, 0xa9, 0x0b, 0x27, 0xef,
  5171. 0xc9, 0x6c, 0x46, 0x1e, 0x9e, 0x9b, 0xe0, 0x8e, 0x27, 0xaf, 0x86, 0xb0,
  5172. 0x17, 0x50, 0xdb, 0xbf, 0xb4, 0x02, 0x45, 0xe9, 0x98, 0xf0, 0x67, 0x96,
  5173. 0x86, 0xe1, 0x8d, 0x80, 0x17, 0x02, 0xff, 0xa2,
  5174. }
  5175. };
  5176. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5177. result = do_hmac_prng_pr_false_test(98, &vec);
  5178. TC_END_RESULT(result);
  5179. return result;
  5180. }
  5181. unsigned int test_99(void)
  5182. {
  5183. unsigned int result = TC_PASS;
  5184. const struct hmac_prng_test_vector vec = {
  5185. 32,
  5186. 16,
  5187. 0,
  5188. 0,
  5189. 128,
  5190. {
  5191. 0x21, 0x07, 0x25, 0xc6, 0x08, 0x39, 0x78, 0x2d, 0x36, 0x65, 0xa3, 0x00,
  5192. 0xad, 0xcf, 0x81, 0xc6, 0xd5, 0x14, 0x78, 0xb1, 0xf1, 0x2e, 0x5d, 0x53,
  5193. 0x10, 0x4b, 0xeb, 0x38, 0x5c, 0xe1, 0x50, 0x24,
  5194. },
  5195. {
  5196. 0x12, 0x9a, 0x70, 0x5c, 0x88, 0xe4, 0xfd, 0xb1, 0x67, 0xd3, 0x47, 0x94,
  5197. 0xf6, 0xf7, 0x39, 0xb4,
  5198. },
  5199. {
  5200. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5201. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5202. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5203. },
  5204. {
  5205. 0xe1, 0x2e, 0x9c, 0xc5, 0x23, 0xd6, 0x18, 0xae, 0x6c, 0xb6, 0x67, 0xec,
  5206. 0xa7, 0xed, 0xd3, 0x54, 0x58, 0x18, 0x7b, 0xd1, 0x9e, 0x90, 0x79, 0xb5,
  5207. 0xc5, 0xe1, 0xcb, 0x97, 0x1e, 0x38, 0x03, 0x09,
  5208. },
  5209. {
  5210. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5211. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5212. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5213. },
  5214. {
  5215. 0x34, 0x5b, 0x3b, 0x8c, 0x01, 0x1c, 0x78, 0x7e, 0x90, 0x63, 0xf8, 0x11,
  5216. 0xd5, 0x1f, 0x09, 0x6a, 0x31, 0xcc, 0x1e, 0xa9, 0xfa, 0xa0, 0xb8, 0xf2,
  5217. 0x9d, 0x91, 0x6b, 0xe1, 0xb9, 0x25, 0xa4, 0xb7, 0x1f, 0x8e, 0x6d, 0xb5,
  5218. 0x6e, 0x0e, 0x22, 0xab, 0xfd, 0xe3, 0xf0, 0x35, 0xf2, 0xd5, 0xa6, 0xfc,
  5219. 0xde, 0x02, 0xe5, 0xdf, 0x8c, 0x0b, 0xef, 0xe0, 0xc0, 0x04, 0x38, 0xfa,
  5220. 0xa4, 0x27, 0x7c, 0xa7, 0x90, 0xe6, 0x32, 0x31, 0x80, 0x61, 0xfb, 0xab,
  5221. 0xbb, 0x83, 0xdc, 0x83, 0xf7, 0x19, 0xf3, 0xce, 0xab, 0x43, 0x1e, 0x3f,
  5222. 0xe8, 0x06, 0x95, 0xbc, 0x44, 0xd7, 0x4d, 0x09, 0x35, 0xc8, 0x42, 0x25,
  5223. 0x21, 0xce, 0x78, 0x4a, 0x92, 0x3c, 0xac, 0xc3, 0x75, 0x17, 0xb9, 0xdd,
  5224. 0x93, 0xc7, 0xc0, 0x60, 0x8f, 0x95, 0x5e, 0x5b, 0x48, 0x68, 0x0b, 0x53,
  5225. 0x71, 0x42, 0x45, 0x9a, 0x6d, 0x7b, 0x79, 0xe8,
  5226. }
  5227. };
  5228. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5229. result = do_hmac_prng_pr_false_test(99, &vec);
  5230. TC_END_RESULT(result);
  5231. return result;
  5232. }
  5233. unsigned int test_100(void)
  5234. {
  5235. unsigned int result = TC_PASS;
  5236. const struct hmac_prng_test_vector vec = {
  5237. 32,
  5238. 16,
  5239. 0,
  5240. 0,
  5241. 128,
  5242. {
  5243. 0xf8, 0x7e, 0x04, 0x74, 0x38, 0xc6, 0xf5, 0xdc, 0x41, 0xa5, 0xe3, 0xbd,
  5244. 0x0d, 0xdb, 0x38, 0x6c, 0x99, 0x40, 0x7b, 0xf2, 0x76, 0xb5, 0x78, 0x24,
  5245. 0xd4, 0x36, 0x6e, 0x09, 0x73, 0xef, 0x65, 0xf2,
  5246. },
  5247. {
  5248. 0x73, 0x00, 0x2b, 0x5a, 0xc3, 0xcd, 0xb5, 0x61, 0x5a, 0x2e, 0x17, 0x92,
  5249. 0xb9, 0x63, 0x86, 0xe2,
  5250. },
  5251. {
  5252. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5253. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5254. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5255. },
  5256. {
  5257. 0xca, 0x22, 0xf8, 0x53, 0xf4, 0x37, 0x1e, 0xd3, 0x34, 0xab, 0x94, 0x44,
  5258. 0x4b, 0x58, 0xa4, 0xf9, 0xcb, 0xda, 0xcf, 0xda, 0x96, 0xe4, 0xa9, 0xe4,
  5259. 0x6c, 0x9c, 0xf7, 0x76, 0xa9, 0x03, 0x99, 0x0d,
  5260. },
  5261. {
  5262. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5263. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5264. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5265. },
  5266. {
  5267. 0x5d, 0x54, 0x82, 0x7f, 0xb3, 0x7f, 0xd8, 0x64, 0x41, 0xab, 0x4e, 0xb3,
  5268. 0x79, 0x60, 0x89, 0xde, 0x39, 0xf1, 0x13, 0x24, 0x41, 0x58, 0x23, 0x6e,
  5269. 0xc1, 0x62, 0x99, 0x69, 0xf9, 0x29, 0x5f, 0x37, 0x83, 0x6b, 0x2d, 0x7d,
  5270. 0x4d, 0x6e, 0x59, 0xe0, 0xbd, 0xce, 0xfd, 0x92, 0x3c, 0x2c, 0x44, 0x21,
  5271. 0x18, 0xc8, 0xca, 0x3b, 0x00, 0xa2, 0x58, 0xbe, 0xec, 0xad, 0x7d, 0x28,
  5272. 0xd7, 0xe1, 0x21, 0x62, 0xa4, 0x20, 0x21, 0x29, 0x18, 0x93, 0x7a, 0x4d,
  5273. 0x0d, 0xa5, 0xea, 0x7c, 0x0b, 0x96, 0x02, 0x81, 0x32, 0x66, 0x01, 0x5f,
  5274. 0x38, 0x5e, 0xd5, 0xc6, 0x9a, 0x48, 0x37, 0x5e, 0x9b, 0x37, 0x38, 0x81,
  5275. 0x4f, 0x16, 0xc0, 0x85, 0xd5, 0xcf, 0xd1, 0xd2, 0xe6, 0x26, 0x7e, 0x1c,
  5276. 0x5d, 0x7b, 0xad, 0x88, 0xf2, 0x0b, 0x3a, 0xb0, 0xab, 0x27, 0x9f, 0xcb,
  5277. 0x65, 0x10, 0x20, 0xec, 0xfc, 0x15, 0x07, 0x63,
  5278. }
  5279. };
  5280. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5281. result = do_hmac_prng_pr_false_test(100, &vec);
  5282. TC_END_RESULT(result);
  5283. return result;
  5284. }
  5285. unsigned int test_101(void)
  5286. {
  5287. unsigned int result = TC_PASS;
  5288. const struct hmac_prng_test_vector vec = {
  5289. 32,
  5290. 16,
  5291. 0,
  5292. 0,
  5293. 128,
  5294. {
  5295. 0x50, 0xeb, 0xb3, 0x84, 0x61, 0xd3, 0xf2, 0x6c, 0x5a, 0xc2, 0xec, 0xf5,
  5296. 0x3a, 0x03, 0x41, 0x78, 0x42, 0x52, 0x5b, 0xad, 0x57, 0x7f, 0x05, 0x7e,
  5297. 0xd9, 0x20, 0xc1, 0xc4, 0x97, 0x0e, 0x55, 0x29,
  5298. },
  5299. {
  5300. 0x99, 0x6c, 0x6b, 0x9d, 0xb4, 0xa1, 0xaa, 0xb9, 0xd3, 0x1c, 0x75, 0x4a,
  5301. 0xf4, 0x9a, 0x54, 0x45,
  5302. },
  5303. {
  5304. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5305. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5306. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5307. },
  5308. {
  5309. 0xea, 0x89, 0x85, 0x50, 0xce, 0xe3, 0x88, 0x88, 0xc0, 0x38, 0xf6, 0x7b,
  5310. 0x49, 0x12, 0xe4, 0x8a, 0xa9, 0xe3, 0x78, 0xff, 0x3a, 0xdc, 0x9c, 0xc6,
  5311. 0xc5, 0xba, 0xee, 0x8c, 0x37, 0x6f, 0xc7, 0x08,
  5312. },
  5313. {
  5314. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5315. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5316. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5317. },
  5318. {
  5319. 0x77, 0x37, 0x71, 0xf1, 0xf3, 0x90, 0x37, 0x63, 0xf4, 0xf9, 0xd6, 0xb2,
  5320. 0x16, 0x73, 0xd2, 0xa9, 0x3f, 0x6e, 0x4d, 0x03, 0x63, 0x6d, 0x38, 0x1b,
  5321. 0xc2, 0x68, 0x64, 0xb4, 0x64, 0x96, 0xe9, 0x58, 0x8a, 0x06, 0x4b, 0x00,
  5322. 0xe8, 0x46, 0xa8, 0xd9, 0x1e, 0x30, 0x2c, 0x47, 0xda, 0xcd, 0xab, 0x73,
  5323. 0x88, 0xf5, 0xcd, 0x00, 0x93, 0xd2, 0x17, 0x4e, 0x33, 0x32, 0x7f, 0x9d,
  5324. 0xf6, 0x53, 0x71, 0x24, 0xab, 0x91, 0xcf, 0x35, 0xcb, 0xee, 0xce, 0x38,
  5325. 0xf6, 0x37, 0x3a, 0x8b, 0x85, 0x1d, 0xa2, 0x64, 0x5d, 0xad, 0x5c, 0xf0,
  5326. 0x1a, 0x59, 0xf5, 0x31, 0x80, 0xa0, 0xfb, 0xfe, 0xb9, 0x28, 0xa7, 0x10,
  5327. 0x90, 0xd1, 0x99, 0x7b, 0x05, 0x5f, 0xa2, 0x0f, 0x14, 0xf4, 0x9c, 0x28,
  5328. 0xdc, 0x06, 0x5d, 0xdd, 0x84, 0xa1, 0x4d, 0x93, 0x23, 0x19, 0x2b, 0x24,
  5329. 0x28, 0xae, 0xc6, 0xf9, 0x15, 0xf9, 0x04, 0x91,
  5330. }
  5331. };
  5332. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5333. result = do_hmac_prng_pr_false_test(101, &vec);
  5334. TC_END_RESULT(result);
  5335. return result;
  5336. }
  5337. unsigned int test_102(void)
  5338. {
  5339. unsigned int result = TC_PASS;
  5340. const struct hmac_prng_test_vector vec = {
  5341. 32,
  5342. 16,
  5343. 0,
  5344. 0,
  5345. 128,
  5346. {
  5347. 0xc1, 0x3d, 0x6c, 0xd6, 0x3b, 0xb7, 0x93, 0x11, 0x74, 0x69, 0x6f, 0x3e,
  5348. 0x04, 0xa0, 0xc4, 0x1c, 0xb0, 0xb2, 0x56, 0x11, 0x34, 0xe8, 0x47, 0xce,
  5349. 0x03, 0xe3, 0x63, 0x26, 0xb8, 0x03, 0xf8, 0xab,
  5350. },
  5351. {
  5352. 0x20, 0x84, 0xab, 0x32, 0x37, 0x43, 0x92, 0xea, 0x9f, 0x6e, 0x8a, 0x47,
  5353. 0x4f, 0x18, 0xe9, 0xd7,
  5354. },
  5355. {
  5356. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5357. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5358. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5359. },
  5360. {
  5361. 0xae, 0xc5, 0xa6, 0xa7, 0x23, 0x2a, 0x52, 0xb8, 0x1c, 0xe7, 0xe9, 0x81,
  5362. 0xa3, 0x59, 0xce, 0xf1, 0xbb, 0xd2, 0xf1, 0xef, 0xf8, 0x48, 0x83, 0x71,
  5363. 0x46, 0x8c, 0xd1, 0xf4, 0x14, 0x7a, 0x89, 0xc2,
  5364. },
  5365. {
  5366. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5367. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5368. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5369. },
  5370. {
  5371. 0xda, 0xea, 0x78, 0x88, 0x17, 0x37, 0xcb, 0x26, 0xd6, 0x0c, 0x36, 0xce,
  5372. 0xb9, 0xfe, 0xc3, 0xd2, 0x81, 0xc7, 0xae, 0xc5, 0x4b, 0x4b, 0x98, 0x50,
  5373. 0x93, 0x7b, 0x37, 0x3b, 0x2b, 0x26, 0x21, 0xfe, 0x07, 0x75, 0x85, 0xa1,
  5374. 0xfe, 0x88, 0x26, 0x5d, 0x84, 0xf2, 0x25, 0x55, 0x2e, 0x5c, 0x85, 0xcb,
  5375. 0xec, 0x8d, 0x00, 0x06, 0x96, 0x48, 0x06, 0x5a, 0xc1, 0x20, 0x73, 0xae,
  5376. 0xdc, 0xe8, 0xc9, 0x40, 0x46, 0x09, 0x49, 0xb5, 0x97, 0x66, 0x7e, 0xcf,
  5377. 0xce, 0xda, 0xbd, 0x7a, 0x86, 0xa9, 0x79, 0xb9, 0x04, 0xa2, 0x4d, 0x32,
  5378. 0xdb, 0x10, 0x22, 0x3e, 0xae, 0x5a, 0x98, 0xa0, 0xd1, 0xb6, 0x57, 0x1b,
  5379. 0x86, 0x43, 0xdf, 0x2c, 0x62, 0x65, 0xa5, 0xd6, 0x6c, 0xee, 0x9f, 0x4a,
  5380. 0xbf, 0xc5, 0x77, 0x81, 0x46, 0xd6, 0xfb, 0x2b, 0x85, 0x3d, 0x82, 0x63,
  5381. 0x6c, 0x13, 0x25, 0xb2, 0xd1, 0xef, 0x45, 0x76,
  5382. }
  5383. };
  5384. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5385. result = do_hmac_prng_pr_false_test(102, &vec);
  5386. TC_END_RESULT(result);
  5387. return result;
  5388. }
  5389. unsigned int test_103(void)
  5390. {
  5391. unsigned int result = TC_PASS;
  5392. const struct hmac_prng_test_vector vec = {
  5393. 32,
  5394. 16,
  5395. 0,
  5396. 0,
  5397. 128,
  5398. {
  5399. 0x67, 0xf9, 0x8d, 0x4d, 0x9f, 0x35, 0xa8, 0xda, 0xc0, 0x3d, 0x19, 0x92,
  5400. 0x22, 0xb0, 0x7c, 0x78, 0x5f, 0x11, 0xdc, 0x51, 0x7a, 0x8d, 0x88, 0x40,
  5401. 0xf5, 0xfe, 0xa4, 0xb6, 0xfd, 0x68, 0x44, 0x8e,
  5402. },
  5403. {
  5404. 0x1d, 0xcd, 0x3a, 0x1b, 0xbb, 0x4f, 0x94, 0xad, 0x78, 0x35, 0x58, 0x42,
  5405. 0x89, 0x3d, 0xe0, 0x35,
  5406. },
  5407. {
  5408. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5409. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5410. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5411. },
  5412. {
  5413. 0xf1, 0xf9, 0xca, 0xee, 0x31, 0x03, 0x6a, 0x2a, 0x20, 0x0a, 0x05, 0x2d,
  5414. 0x8a, 0x1e, 0x06, 0x59, 0x20, 0xb8, 0x36, 0x3f, 0xbb, 0xf1, 0xc3, 0x71,
  5415. 0xa2, 0x32, 0x44, 0xc6, 0x83, 0x51, 0x13, 0xd3,
  5416. },
  5417. {
  5418. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5419. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5420. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5421. },
  5422. {
  5423. 0x9f, 0x24, 0xa5, 0x6f, 0x98, 0x58, 0x51, 0x26, 0x2d, 0x0c, 0xfd, 0xf1,
  5424. 0x22, 0xb8, 0x9b, 0x3b, 0x93, 0xa1, 0xdf, 0xd9, 0x7a, 0x29, 0x7f, 0xb1,
  5425. 0xf6, 0xfc, 0x39, 0xd6, 0xc7, 0x19, 0x94, 0x2e, 0x28, 0x97, 0x7b, 0xde,
  5426. 0x91, 0xcb, 0x39, 0x41, 0xc0, 0x35, 0xe3, 0xec, 0x45, 0x4d, 0xbf, 0x9d,
  5427. 0xbb, 0x43, 0x57, 0x69, 0x20, 0xdc, 0x47, 0x27, 0x3d, 0x3f, 0x82, 0xcc,
  5428. 0xc8, 0xa8, 0xfa, 0xbc, 0x1b, 0x53, 0x2f, 0x9d, 0x1c, 0x48, 0x7d, 0xb3,
  5429. 0x1e, 0x7e, 0xaa, 0xc3, 0x32, 0x5e, 0xdd, 0x1f, 0xd8, 0x08, 0x70, 0xcf,
  5430. 0x30, 0xcc, 0xdc, 0x87, 0xa1, 0xfa, 0x4b, 0x88, 0xeb, 0x7a, 0x1c, 0x46,
  5431. 0x4d, 0x0b, 0x68, 0xef, 0xc3, 0xdd, 0x76, 0x0a, 0x32, 0x59, 0xad, 0x28,
  5432. 0x0d, 0x49, 0x64, 0x2b, 0xeb, 0xde, 0xbc, 0x1a, 0x58, 0x29, 0xf3, 0x2f,
  5433. 0x09, 0xfb, 0x77, 0x7a, 0xfb, 0x40, 0x9a, 0xee,
  5434. }
  5435. };
  5436. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5437. result = do_hmac_prng_pr_false_test(103, &vec);
  5438. TC_END_RESULT(result);
  5439. return result;
  5440. }
  5441. unsigned int test_104(void)
  5442. {
  5443. unsigned int result = TC_PASS;
  5444. const struct hmac_prng_test_vector vec = {
  5445. 32,
  5446. 16,
  5447. 0,
  5448. 0,
  5449. 128,
  5450. {
  5451. 0x0f, 0x4a, 0x78, 0xc8, 0x62, 0x3d, 0x30, 0x31, 0x54, 0x39, 0x8c, 0xb9,
  5452. 0x34, 0x08, 0x57, 0xba, 0x93, 0x73, 0x88, 0xf9, 0x5b, 0x01, 0x97, 0xec,
  5453. 0xba, 0x48, 0x7c, 0x4c, 0xf0, 0x21, 0xb3, 0xca,
  5454. },
  5455. {
  5456. 0x6c, 0x02, 0xe6, 0x93, 0x98, 0xab, 0x7b, 0x7d, 0xfc, 0x4a, 0xd8, 0x3e,
  5457. 0x7f, 0x3c, 0xa8, 0xff,
  5458. },
  5459. {
  5460. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5461. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5462. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5463. },
  5464. {
  5465. 0x03, 0x02, 0x0b, 0x45, 0x11, 0xb2, 0x52, 0x9b, 0x2a, 0x33, 0x48, 0x07,
  5466. 0x8a, 0xd0, 0x31, 0x8b, 0xa5, 0xf8, 0x25, 0xa1, 0xbb, 0x06, 0x72, 0xdc,
  5467. 0x89, 0x4c, 0xb4, 0xd1, 0xdd, 0x3e, 0x29, 0x4d,
  5468. },
  5469. {
  5470. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5471. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5472. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5473. },
  5474. {
  5475. 0xf5, 0xb9, 0xa5, 0x26, 0x29, 0x70, 0xb8, 0xcd, 0x94, 0x48, 0x2a, 0xc6,
  5476. 0xe4, 0xde, 0xdd, 0x8f, 0xfd, 0xca, 0xca, 0x0f, 0xc3, 0x7e, 0x6d, 0x0f,
  5477. 0xa7, 0x1a, 0xb1, 0x0e, 0x5a, 0xe0, 0x74, 0x87, 0xc6, 0x88, 0x01, 0x7d,
  5478. 0xc0, 0x15, 0x14, 0xf8, 0x57, 0x70, 0x2b, 0x28, 0xcd, 0x8e, 0x4f, 0x1b,
  5479. 0x08, 0x39, 0xb9, 0xec, 0x4d, 0x6f, 0x9e, 0x07, 0xe4, 0x55, 0x1e, 0x15,
  5480. 0x0c, 0x91, 0xcd, 0x4f, 0x4a, 0xa2, 0x2a, 0xa7, 0xe8, 0xa5, 0xe1, 0x07,
  5481. 0x78, 0x69, 0xb2, 0x45, 0x4b, 0xb8, 0xcd, 0xda, 0xee, 0x69, 0xa0, 0x67,
  5482. 0xc6, 0xb0, 0xdc, 0xc1, 0x78, 0xfe, 0x1d, 0xa6, 0xed, 0xe5, 0xd5, 0x32,
  5483. 0x69, 0x37, 0x25, 0x36, 0xf3, 0x4b, 0xed, 0x37, 0x85, 0x66, 0xcb, 0xd8,
  5484. 0x98, 0x6d, 0xc1, 0xae, 0x08, 0x48, 0xbe, 0x74, 0x90, 0x79, 0xdd, 0x57,
  5485. 0x2d, 0x4d, 0x62, 0xe5, 0x1f, 0xe6, 0x59, 0xca,
  5486. }
  5487. };
  5488. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5489. result = do_hmac_prng_pr_false_test(104, &vec);
  5490. TC_END_RESULT(result);
  5491. return result;
  5492. }
  5493. unsigned int test_105(void)
  5494. {
  5495. unsigned int result = TC_PASS;
  5496. const struct hmac_prng_test_vector vec = {
  5497. 32,
  5498. 16,
  5499. 0,
  5500. 0,
  5501. 128,
  5502. {
  5503. 0x00, 0x1c, 0xf2, 0xbb, 0x87, 0xee, 0x4a, 0xa1, 0x45, 0x01, 0x19, 0x08,
  5504. 0xce, 0x79, 0x92, 0x07, 0x00, 0xff, 0x40, 0xce, 0x76, 0x50, 0x99, 0x29,
  5505. 0x2b, 0x7b, 0x7a, 0xec, 0x68, 0xee, 0xb0, 0x5e,
  5506. },
  5507. {
  5508. 0xb1, 0x01, 0x15, 0xcc, 0xfe, 0xfe, 0xc7, 0x48, 0x7c, 0x87, 0x24, 0x12,
  5509. 0x97, 0x70, 0x67, 0xa9,
  5510. },
  5511. {
  5512. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5513. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5514. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5515. },
  5516. {
  5517. 0x9b, 0x5d, 0xcf, 0xa4, 0x0b, 0x5c, 0x5a, 0x9d, 0xca, 0xe4, 0xe8, 0xcd,
  5518. 0xf1, 0x6e, 0x14, 0x58, 0xd4, 0x91, 0x64, 0xb3, 0x17, 0xce, 0xfc, 0xe6,
  5519. 0x3f, 0x28, 0xc1, 0x0d, 0x29, 0x22, 0x99, 0x74,
  5520. },
  5521. {
  5522. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5523. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5524. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5525. },
  5526. {
  5527. 0xe0, 0xf0, 0x73, 0xc0, 0xbb, 0x40, 0x24, 0xc4, 0x6c, 0xed, 0xd5, 0x6f,
  5528. 0x6d, 0xde, 0x44, 0x67, 0x7d, 0x8d, 0xcd, 0xaf, 0x8d, 0xf9, 0x39, 0xe2,
  5529. 0xcb, 0xfa, 0xaf, 0x0f, 0xc3, 0x81, 0x0f, 0x62, 0x1b, 0x29, 0xdd, 0xaa,
  5530. 0x78, 0x10, 0xee, 0x3c, 0xfc, 0x25, 0x12, 0x32, 0xc4, 0xf8, 0xb0, 0x1c,
  5531. 0x56, 0x64, 0xe4, 0xaf, 0x5e, 0xa0, 0xa7, 0xa2, 0x0c, 0x76, 0x8a, 0xae,
  5532. 0x83, 0x92, 0x18, 0x63, 0xd7, 0xe0, 0xff, 0x12, 0x77, 0x8e, 0xe1, 0xe6,
  5533. 0xe4, 0xef, 0xee, 0xa6, 0x32, 0x0f, 0x9c, 0x8d, 0xd4, 0x39, 0xe7, 0x98,
  5534. 0x7e, 0x62, 0x0a, 0xc2, 0xee, 0x40, 0x96, 0x52, 0xba, 0x7f, 0x07, 0x70,
  5535. 0x8c, 0xa1, 0x9a, 0x2e, 0x16, 0xf4, 0xd3, 0x24, 0xba, 0x1a, 0xcc, 0xa3,
  5536. 0xa4, 0xd2, 0x44, 0x30, 0x24, 0x38, 0x60, 0x8b, 0xa3, 0xb6, 0x4c, 0xae,
  5537. 0x05, 0x54, 0x5a, 0xd8, 0x67, 0x19, 0x49, 0x51,
  5538. }
  5539. };
  5540. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5541. result = do_hmac_prng_pr_false_test(105, &vec);
  5542. TC_END_RESULT(result);
  5543. return result;
  5544. }
  5545. unsigned int test_106(void)
  5546. {
  5547. unsigned int result = TC_PASS;
  5548. const struct hmac_prng_test_vector vec = {
  5549. 32,
  5550. 16,
  5551. 32,
  5552. 0,
  5553. 128,
  5554. {
  5555. 0x22, 0xd8, 0xc6, 0x2b, 0xcd, 0xdf, 0x5d, 0xa1, 0xdb, 0xdb, 0x09, 0x3d,
  5556. 0x6b, 0x1f, 0x66, 0x3d, 0xde, 0x33, 0x73, 0x43, 0xc5, 0x6c, 0xcf, 0xd4,
  5557. 0x0a, 0xcb, 0xe3, 0x30, 0x23, 0x09, 0xea, 0xe0,
  5558. },
  5559. {
  5560. 0x2a, 0x4b, 0x8e, 0x66, 0xde, 0xaa, 0xc3, 0x8b, 0x70, 0xd9, 0xff, 0xc2,
  5561. 0x0c, 0x58, 0x5d, 0xa5,
  5562. },
  5563. {
  5564. 0x0a, 0x33, 0x70, 0x38, 0xf4, 0xb4, 0x57, 0x3f, 0xf4, 0x3a, 0x43, 0x21,
  5565. 0xa5, 0x86, 0xca, 0x77, 0x7c, 0x30, 0x30, 0x12, 0x67, 0xd8, 0x2f, 0xdf,
  5566. 0x93, 0x71, 0x98, 0xac, 0x56, 0xc7, 0x06, 0x2c,
  5567. },
  5568. {
  5569. 0x0b, 0x6f, 0xd1, 0x79, 0xe4, 0x4f, 0x14, 0x9f, 0x06, 0x2d, 0xa4, 0xf6,
  5570. 0x6f, 0x82, 0x9c, 0x3c, 0x58, 0xc4, 0xa0, 0xa4, 0xf7, 0x5a, 0xc2, 0xa9,
  5571. 0xe0, 0x24, 0x0d, 0x43, 0xbe, 0xc3, 0x0e, 0x44,
  5572. },
  5573. {
  5574. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5575. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5576. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5577. },
  5578. {
  5579. 0x04, 0x6e, 0x19, 0xb4, 0xd8, 0xab, 0x38, 0xdd, 0x08, 0xde, 0xfd, 0xd0,
  5580. 0xd7, 0xc3, 0x0c, 0x8c, 0x75, 0xd5, 0x68, 0x9c, 0xa2, 0x6f, 0x2b, 0xc9,
  5581. 0x94, 0xac, 0x7f, 0xca, 0x4f, 0xdb, 0xee, 0x80, 0x67, 0x7d, 0xfb, 0xdd,
  5582. 0x85, 0x1e, 0x77, 0x22, 0x83, 0x58, 0x44, 0xdc, 0xa7, 0x9d, 0xec, 0x4a,
  5583. 0x3f, 0xa8, 0x2f, 0xeb, 0x88, 0x4d, 0xf7, 0xd4, 0x74, 0xbd, 0x97, 0x2e,
  5584. 0x12, 0x61, 0x9b, 0xd5, 0xd6, 0xcb, 0x1b, 0x95, 0x1e, 0xac, 0x47, 0xee,
  5585. 0xc2, 0x58, 0x11, 0x95, 0xb5, 0x31, 0x53, 0x4e, 0xde, 0x50, 0x7a, 0xf6,
  5586. 0xf7, 0x41, 0x7f, 0xca, 0x84, 0x53, 0x2b, 0xe7, 0xef, 0x5d, 0xa6, 0x73,
  5587. 0x8d, 0xbf, 0x7a, 0xad, 0xfc, 0xd7, 0xcb, 0x88, 0x88, 0x62, 0xb5, 0x2e,
  5588. 0xc7, 0x73, 0xcf, 0x3f, 0xd0, 0x0e, 0x6d, 0x4e, 0xfb, 0x30, 0x71, 0xaf,
  5589. 0x9b, 0x70, 0xa4, 0x99, 0x35, 0xa3, 0xba, 0x38,
  5590. }
  5591. };
  5592. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5593. result = do_hmac_prng_pr_false_test(106, &vec);
  5594. TC_END_RESULT(result);
  5595. return result;
  5596. }
  5597. unsigned int test_107(void)
  5598. {
  5599. unsigned int result = TC_PASS;
  5600. const struct hmac_prng_test_vector vec = {
  5601. 32,
  5602. 16,
  5603. 32,
  5604. 0,
  5605. 128,
  5606. {
  5607. 0x64, 0x11, 0x75, 0x6d, 0xc7, 0xaa, 0x3b, 0xe0, 0x96, 0xad, 0x41, 0x9c,
  5608. 0xe8, 0x38, 0x1c, 0x09, 0x10, 0xd2, 0xa2, 0xaf, 0x5e, 0x94, 0x4d, 0x8f,
  5609. 0xf2, 0x1f, 0x2f, 0xc5, 0x66, 0x6a, 0xcb, 0x87,
  5610. },
  5611. {
  5612. 0x73, 0xb6, 0x8f, 0x5c, 0x74, 0x9f, 0xac, 0x09, 0xf0, 0x1b, 0xa5, 0x65,
  5613. 0xa7, 0x57, 0x89, 0xf8,
  5614. },
  5615. {
  5616. 0x3c, 0xa3, 0xd9, 0x14, 0x6e, 0x2e, 0xbf, 0xf2, 0x1a, 0x28, 0x7d, 0x38,
  5617. 0x5c, 0x42, 0x24, 0xed, 0x23, 0x59, 0x6d, 0x74, 0x50, 0x17, 0xf3, 0xb8,
  5618. 0x11, 0x48, 0xc9, 0x2f, 0x3b, 0x9b, 0x27, 0xa1,
  5619. },
  5620. {
  5621. 0xd7, 0x70, 0x12, 0x8e, 0x71, 0x1a, 0x8d, 0xf1, 0x63, 0xf4, 0xe2, 0x89,
  5622. 0xe7, 0x75, 0x03, 0x2f, 0xdb, 0x47, 0x3a, 0xa3, 0x8f, 0x7e, 0x1d, 0x29,
  5623. 0x17, 0x26, 0x12, 0x13, 0x78, 0xe9, 0xa8, 0xde,
  5624. },
  5625. {
  5626. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5627. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5628. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5629. },
  5630. {
  5631. 0xcd, 0x72, 0xf8, 0x09, 0xd9, 0xcd, 0x1a, 0xe1, 0x3d, 0x99, 0x5d, 0x1c,
  5632. 0xac, 0x36, 0x8e, 0xdb, 0xff, 0xf4, 0x56, 0x97, 0xde, 0xb1, 0xd1, 0xb7,
  5633. 0x95, 0xff, 0xcf, 0x35, 0x49, 0x36, 0xf0, 0xbf, 0x61, 0xcf, 0x55, 0x0d,
  5634. 0x04, 0x3f, 0x9d, 0x2f, 0xa4, 0x62, 0x81, 0xa1, 0x39, 0x3e, 0xac, 0xe3,
  5635. 0x84, 0x7d, 0x5e, 0x4c, 0x63, 0x35, 0x18, 0x2f, 0x87, 0xf4, 0x65, 0x80,
  5636. 0x29, 0x89, 0xb2, 0x55, 0x70, 0x1f, 0x9d, 0xae, 0xe0, 0x3f, 0x59, 0x1b,
  5637. 0xa5, 0xc0, 0x80, 0xd1, 0xf0, 0x58, 0x4b, 0x02, 0x7a, 0xb3, 0xb1, 0xda,
  5638. 0x57, 0x35, 0xc9, 0x36, 0x11, 0xd9, 0xbe, 0x11, 0xa7, 0x9c, 0x0f, 0xde,
  5639. 0x3b, 0xd4, 0x20, 0x4e, 0xa3, 0x67, 0x40, 0x75, 0xea, 0x96, 0x7a, 0x24,
  5640. 0x4a, 0xb1, 0xdc, 0xac, 0xa6, 0xf0, 0x7b, 0x48, 0xbb, 0xb0, 0xb7, 0xe2,
  5641. 0x7d, 0x8a, 0x1a, 0x68, 0x0f, 0xa0, 0x79, 0x4c,
  5642. }
  5643. };
  5644. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5645. result = do_hmac_prng_pr_false_test(107, &vec);
  5646. TC_END_RESULT(result);
  5647. return result;
  5648. }
  5649. unsigned int test_108(void)
  5650. {
  5651. unsigned int result = TC_PASS;
  5652. const struct hmac_prng_test_vector vec = {
  5653. 32,
  5654. 16,
  5655. 32,
  5656. 0,
  5657. 128,
  5658. {
  5659. 0x68, 0xae, 0xa6, 0x3a, 0xa5, 0xd6, 0xa8, 0x3a, 0x5f, 0x71, 0xe3, 0x32,
  5660. 0x68, 0xd1, 0x62, 0xa5, 0x8d, 0x8e, 0xd1, 0x2f, 0xfb, 0x26, 0xc8, 0x25,
  5661. 0x70, 0x3e, 0xd0, 0xd1, 0x00, 0xdf, 0xd1, 0xeb,
  5662. },
  5663. {
  5664. 0xfa, 0x79, 0x9c, 0x67, 0x7c, 0x36, 0x1c, 0x3e, 0x3e, 0xb3, 0x21, 0xb0,
  5665. 0x73, 0x08, 0xf2, 0xfd,
  5666. },
  5667. {
  5668. 0xfd, 0x42, 0x73, 0xdf, 0xd5, 0xb3, 0xbc, 0x1c, 0x6a, 0x12, 0x46, 0xf5,
  5669. 0x43, 0x75, 0xe9, 0xa0, 0x02, 0x28, 0x64, 0xdc, 0x40, 0x08, 0xf1, 0x94,
  5670. 0x22, 0xec, 0x9c, 0x0f, 0xf8, 0xa9, 0x56, 0x44,
  5671. },
  5672. {
  5673. 0xc6, 0x73, 0x35, 0x99, 0x70, 0x4a, 0xb7, 0x20, 0x44, 0xfd, 0x28, 0x6e,
  5674. 0x3f, 0x32, 0x7b, 0x53, 0xe2, 0xf0, 0x4c, 0x33, 0xb1, 0x75, 0x44, 0xa4,
  5675. 0x2c, 0x39, 0x90, 0x59, 0x43, 0xce, 0x20, 0xe7,
  5676. },
  5677. {
  5678. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5679. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5680. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5681. },
  5682. {
  5683. 0x38, 0x92, 0x53, 0xf7, 0x3e, 0x2e, 0xd3, 0xf9, 0x10, 0x9e, 0x6f, 0x98,
  5684. 0xd8, 0x89, 0xb1, 0x55, 0x4f, 0x3b, 0xee, 0xdc, 0xf9, 0xd4, 0x12, 0xae,
  5685. 0xbc, 0x07, 0xba, 0x9a, 0xc8, 0x50, 0xaf, 0x07, 0x91, 0x3f, 0xe1, 0xc9,
  5686. 0x9c, 0xc8, 0x24, 0xe9, 0x4e, 0x55, 0xcb, 0xe9, 0x9e, 0xe2, 0x30, 0x66,
  5687. 0xe8, 0xe0, 0x18, 0x83, 0x90, 0xaf, 0xd8, 0x8d, 0xc3, 0xe1, 0x2d, 0x41,
  5688. 0xb5, 0xb2, 0x77, 0x62, 0xa9, 0x6b, 0x2d, 0xb3, 0x05, 0xbf, 0x7c, 0x12,
  5689. 0x06, 0x53, 0x09, 0xaa, 0xb5, 0x71, 0xad, 0xf3, 0x5b, 0x26, 0x9b, 0xfb,
  5690. 0x64, 0x79, 0x39, 0x79, 0x4c, 0x2e, 0x7d, 0x1d, 0xae, 0xf3, 0x5d, 0x85,
  5691. 0x74, 0x55, 0xde, 0xb0, 0xfe, 0x12, 0x45, 0x1c, 0x41, 0x7e, 0x95, 0x55,
  5692. 0x30, 0x11, 0x81, 0x2e, 0xad, 0x9b, 0x81, 0x38, 0xf7, 0xac, 0xeb, 0x75,
  5693. 0xa5, 0x5e, 0xdc, 0xbf, 0x96, 0x8e, 0x1f, 0x68,
  5694. }
  5695. };
  5696. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5697. result = do_hmac_prng_pr_false_test(108, &vec);
  5698. TC_END_RESULT(result);
  5699. return result;
  5700. }
  5701. unsigned int test_109(void)
  5702. {
  5703. unsigned int result = TC_PASS;
  5704. const struct hmac_prng_test_vector vec = {
  5705. 32,
  5706. 16,
  5707. 32,
  5708. 0,
  5709. 128,
  5710. {
  5711. 0xf9, 0xaa, 0xbb, 0x49, 0x60, 0x0f, 0xef, 0x8a, 0x93, 0x11, 0xc0, 0x28,
  5712. 0x80, 0xb3, 0xab, 0x2d, 0xf9, 0x0a, 0xbb, 0xe0, 0x7f, 0x51, 0x43, 0x63,
  5713. 0x2c, 0x6c, 0x35, 0xb5, 0x73, 0xff, 0xdb, 0x8d,
  5714. },
  5715. {
  5716. 0x7c, 0x64, 0xac, 0xa5, 0xa1, 0x21, 0x11, 0x4f, 0x6e, 0xbf, 0x5f, 0x62,
  5717. 0x9b, 0x08, 0x2b, 0x61,
  5718. },
  5719. {
  5720. 0xf5, 0x55, 0x69, 0xa6, 0xdf, 0xb8, 0x77, 0x69, 0xcf, 0x69, 0xb0, 0x2b,
  5721. 0x40, 0x43, 0xa0, 0xe9, 0x05, 0x5b, 0x5a, 0xec, 0x53, 0xa3, 0x1d, 0x24,
  5722. 0x59, 0x55, 0x66, 0xd5, 0x22, 0xf7, 0x6c, 0xd5,
  5723. },
  5724. {
  5725. 0x11, 0xdc, 0x58, 0x43, 0xc5, 0x5d, 0x03, 0x3b, 0x18, 0x01, 0x01, 0x6b,
  5726. 0xd0, 0xcf, 0x5d, 0x79, 0x9d, 0x76, 0x8c, 0xdc, 0x1e, 0xe3, 0xe2, 0x1d,
  5727. 0xa6, 0x1a, 0x02, 0x27, 0xb9, 0x83, 0x15, 0x8c,
  5728. },
  5729. {
  5730. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5731. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5732. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5733. },
  5734. {
  5735. 0x3b, 0x6a, 0xa6, 0x99, 0xd9, 0x6f, 0x4f, 0x1d, 0xd2, 0x9c, 0x19, 0xc5,
  5736. 0x58, 0xd0, 0x3d, 0xb3, 0x00, 0xdb, 0x1c, 0xc9, 0x2f, 0xb1, 0xa0, 0x56,
  5737. 0x52, 0x79, 0xdb, 0x1d, 0x05, 0x56, 0x67, 0xa7, 0x84, 0x49, 0x34, 0xf0,
  5738. 0x4d, 0xb0, 0x00, 0x59, 0x4c, 0xc0, 0x66, 0xb0, 0x4b, 0xe5, 0x68, 0xc0,
  5739. 0xde, 0xa8, 0xe4, 0xeb, 0xe5, 0x46, 0x7e, 0x1f, 0xf9, 0xaf, 0x2c, 0x62,
  5740. 0x72, 0x3b, 0x90, 0xd4, 0xf2, 0xc2, 0x2a, 0x6c, 0xba, 0x2a, 0xfe, 0x15,
  5741. 0xf5, 0x50, 0x45, 0x03, 0xc8, 0xe4, 0x54, 0xdb, 0xc0, 0xe8, 0x0a, 0x20,
  5742. 0x33, 0x15, 0xa8, 0xf4, 0x59, 0xf9, 0xea, 0xfb, 0x71, 0x11, 0x64, 0x53,
  5743. 0x9d, 0xef, 0xa4, 0x42, 0xb8, 0xf3, 0x52, 0x0e, 0xbe, 0xd4, 0xa5, 0xfc,
  5744. 0x4a, 0x84, 0x46, 0x10, 0x69, 0xee, 0xc4, 0x42, 0x5a, 0xa3, 0xeb, 0x88,
  5745. 0xae, 0x6d, 0x83, 0xad, 0x7a, 0x23, 0x98, 0x50,
  5746. }
  5747. };
  5748. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5749. result = do_hmac_prng_pr_false_test(109, &vec);
  5750. TC_END_RESULT(result);
  5751. return result;
  5752. }
  5753. unsigned int test_110(void)
  5754. {
  5755. unsigned int result = TC_PASS;
  5756. const struct hmac_prng_test_vector vec = {
  5757. 32,
  5758. 16,
  5759. 32,
  5760. 0,
  5761. 128,
  5762. {
  5763. 0x88, 0xa7, 0x6c, 0x16, 0xd3, 0x27, 0x0e, 0xd3, 0xfc, 0xd1, 0x76, 0xf9,
  5764. 0xd7, 0x93, 0xfa, 0x0c, 0x35, 0x51, 0x65, 0x74, 0xc1, 0xce, 0xf4, 0x25,
  5765. 0xb6, 0x00, 0x76, 0x28, 0xaf, 0xa3, 0x5e, 0x2b,
  5766. },
  5767. {
  5768. 0xff, 0x16, 0xcf, 0x7c, 0xb8, 0xe4, 0x9d, 0x48, 0x2c, 0xfd, 0x39, 0x94,
  5769. 0xab, 0xc5, 0xef, 0x8a,
  5770. },
  5771. {
  5772. 0x92, 0x13, 0xc5, 0x4e, 0x3d, 0x00, 0x2d, 0xf8, 0x74, 0x11, 0x63, 0xab,
  5773. 0x9d, 0x7e, 0x07, 0x57, 0xcd, 0x51, 0x2c, 0x69, 0x1a, 0xd6, 0x4b, 0xaf,
  5774. 0xef, 0x95, 0xcb, 0x72, 0x53, 0x9b, 0x0a, 0xc6,
  5775. },
  5776. {
  5777. 0x49, 0x3b, 0x64, 0x7f, 0xf0, 0xb3, 0xfa, 0xa2, 0x92, 0x1f, 0x12, 0xf8,
  5778. 0xf5, 0x7b, 0x91, 0x93, 0x29, 0xf2, 0xaf, 0x2f, 0xc1, 0xf1, 0x45, 0x76,
  5779. 0xd9, 0xdf, 0x2f, 0x8c, 0xc2, 0xad, 0xa7, 0xa6,
  5780. },
  5781. {
  5782. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5783. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5784. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5785. },
  5786. {
  5787. 0xf1, 0x33, 0x0a, 0x85, 0xf9, 0x00, 0x37, 0x87, 0x6b, 0x37, 0x49, 0x20,
  5788. 0x3e, 0x84, 0x92, 0x87, 0x44, 0x4a, 0x82, 0x7f, 0x0a, 0x58, 0xc2, 0x49,
  5789. 0xff, 0x86, 0x8f, 0xc1, 0xad, 0xba, 0x4d, 0xce, 0x28, 0x5e, 0x07, 0x6a,
  5790. 0x1f, 0x8a, 0xe1, 0xda, 0x8c, 0xf9, 0xfe, 0x14, 0x93, 0x1e, 0x81, 0x64,
  5791. 0x18, 0x6c, 0x97, 0xa8, 0xfe, 0xaf, 0x24, 0x58, 0x34, 0x51, 0xf1, 0x16,
  5792. 0xe6, 0x5f, 0x8e, 0x43, 0x2e, 0x7e, 0xd5, 0x5a, 0x36, 0x68, 0x31, 0x20,
  5793. 0x37, 0x7e, 0x23, 0x12, 0x8d, 0xca, 0x15, 0x40, 0xfe, 0xfb, 0xf3, 0xaf,
  5794. 0x1b, 0x56, 0xd5, 0xc7, 0x41, 0x87, 0xf5, 0x28, 0x6d, 0x0a, 0x95, 0xfb,
  5795. 0x55, 0x93, 0x17, 0x70, 0x54, 0x30, 0x60, 0xce, 0x8d, 0xf0, 0x8f, 0x3c,
  5796. 0x19, 0x59, 0xa1, 0xf4, 0xfc, 0x36, 0xb6, 0x46, 0x71, 0xe0, 0x65, 0x4f,
  5797. 0xff, 0xe7, 0x0d, 0x96, 0xd5, 0x21, 0xbe, 0x21,
  5798. }
  5799. };
  5800. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5801. result = do_hmac_prng_pr_false_test(110, &vec);
  5802. TC_END_RESULT(result);
  5803. return result;
  5804. }
  5805. unsigned int test_111(void)
  5806. {
  5807. unsigned int result = TC_PASS;
  5808. const struct hmac_prng_test_vector vec = {
  5809. 32,
  5810. 16,
  5811. 32,
  5812. 0,
  5813. 128,
  5814. {
  5815. 0xf8, 0xf2, 0xc3, 0x19, 0x4e, 0x8c, 0x4e, 0x90, 0x9e, 0x6f, 0x05, 0x27,
  5816. 0x95, 0x03, 0x07, 0x18, 0xcd, 0xd6, 0x23, 0x53, 0x03, 0xbd, 0xe5, 0x37,
  5817. 0xea, 0x3c, 0x70, 0x53, 0x05, 0x62, 0x26, 0xe1,
  5818. },
  5819. {
  5820. 0xd5, 0x0e, 0xf4, 0xd0, 0x6d, 0x00, 0x74, 0x54, 0x65, 0xce, 0x7b, 0x08,
  5821. 0xcd, 0x03, 0x51, 0x76,
  5822. },
  5823. {
  5824. 0xed, 0x89, 0x7e, 0xc3, 0x3a, 0xe3, 0xf4, 0xb0, 0xc2, 0x0b, 0x12, 0x8d,
  5825. 0x94, 0x61, 0x5f, 0xe3, 0x87, 0x27, 0x0f, 0x8f, 0x0d, 0x66, 0x5e, 0x11,
  5826. 0x9b, 0x9b, 0x5a, 0xd1, 0x0f, 0xd3, 0x65, 0x7a,
  5827. },
  5828. {
  5829. 0x91, 0x78, 0x49, 0x2a, 0x92, 0x51, 0x12, 0x80, 0x6b, 0x27, 0x80, 0x2e,
  5830. 0x0c, 0x9b, 0x0e, 0x70, 0xaf, 0x3f, 0xd5, 0xb6, 0xdb, 0x9a, 0xf8, 0x70,
  5831. 0x40, 0x28, 0x02, 0x56, 0x35, 0xc5, 0xed, 0x27,
  5832. },
  5833. {
  5834. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5835. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5836. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5837. },
  5838. {
  5839. 0x0e, 0x50, 0xd9, 0xdb, 0x9a, 0x5e, 0xb2, 0xd0, 0xb0, 0xd5, 0xc4, 0x53,
  5840. 0x01, 0x70, 0x7e, 0xe2, 0x81, 0x86, 0x68, 0x79, 0xe0, 0x72, 0xe5, 0x16,
  5841. 0x96, 0xe3, 0x28, 0x19, 0xb3, 0x3a, 0x44, 0xf0, 0xd0, 0x0b, 0x88, 0xab,
  5842. 0x5d, 0x6c, 0x31, 0xd9, 0x19, 0x88, 0xb1, 0x75, 0x7c, 0xee, 0xa8, 0x93,
  5843. 0x6e, 0xd5, 0xd0, 0xad, 0x67, 0x29, 0x90, 0xf4, 0x95, 0x1d, 0xfa, 0xea,
  5844. 0x99, 0x4d, 0xc0, 0x0f, 0x32, 0x65, 0x09, 0x5b, 0xdb, 0xef, 0xaf, 0x1d,
  5845. 0x42, 0x24, 0xda, 0x61, 0x68, 0x88, 0xa8, 0x06, 0x60, 0x9d, 0x28, 0x05,
  5846. 0xcf, 0x0f, 0x51, 0x83, 0xd5, 0xe9, 0x25, 0x26, 0x1e, 0x6b, 0x24, 0x90,
  5847. 0xdd, 0x85, 0x24, 0x2f, 0xc9, 0xfb, 0xd4, 0x26, 0xd7, 0x7a, 0xe8, 0x33,
  5848. 0x9a, 0xea, 0xc1, 0x83, 0x94, 0xbb, 0xf3, 0x51, 0xe0, 0x61, 0xe4, 0x95,
  5849. 0x61, 0x38, 0x36, 0x1d, 0x11, 0xb3, 0x57, 0x72,
  5850. }
  5851. };
  5852. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5853. result = do_hmac_prng_pr_false_test(111, &vec);
  5854. TC_END_RESULT(result);
  5855. return result;
  5856. }
  5857. unsigned int test_112(void)
  5858. {
  5859. unsigned int result = TC_PASS;
  5860. const struct hmac_prng_test_vector vec = {
  5861. 32,
  5862. 16,
  5863. 32,
  5864. 0,
  5865. 128,
  5866. {
  5867. 0x2a, 0x65, 0xb1, 0x29, 0x9d, 0x03, 0x4b, 0x95, 0x40, 0x07, 0xae, 0x77,
  5868. 0x34, 0x03, 0xf5, 0x09, 0xec, 0x8d, 0xf5, 0x2b, 0x25, 0xff, 0x57, 0x79,
  5869. 0x19, 0xd3, 0x3e, 0x97, 0x6f, 0xfd, 0x21, 0xa5,
  5870. },
  5871. {
  5872. 0x80, 0x80, 0xab, 0xa8, 0xc9, 0xf7, 0xa0, 0x4a, 0xd4, 0x1c, 0x41, 0xde,
  5873. 0xbc, 0x8d, 0x6b, 0x02,
  5874. },
  5875. {
  5876. 0x31, 0xa4, 0x66, 0x17, 0xe8, 0xee, 0xc9, 0x15, 0x70, 0x7b, 0x75, 0xf7,
  5877. 0xba, 0x78, 0x81, 0xf9, 0x63, 0x4e, 0x7b, 0x01, 0x5e, 0xf2, 0xa2, 0xfb,
  5878. 0x51, 0xf5, 0x92, 0xfd, 0xda, 0x27, 0xfb, 0x20,
  5879. },
  5880. {
  5881. 0xe3, 0xc8, 0x81, 0x51, 0x72, 0xec, 0xee, 0x13, 0xe6, 0x49, 0xff, 0x62,
  5882. 0x4c, 0x62, 0x43, 0xaf, 0xbb, 0x46, 0x60, 0x2b, 0xbf, 0xc3, 0xbd, 0x28,
  5883. 0xd0, 0x31, 0x7b, 0xad, 0x68, 0x56, 0xc6, 0x6f,
  5884. },
  5885. {
  5886. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5887. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5888. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5889. },
  5890. {
  5891. 0x5b, 0x1c, 0x01, 0xab, 0x1d, 0xf4, 0x42, 0x30, 0x5d, 0xaa, 0x89, 0x98,
  5892. 0x72, 0x8e, 0x1e, 0x99, 0x97, 0x5b, 0x32, 0x32, 0x7d, 0xa7, 0x27, 0xf1,
  5893. 0x62, 0xaf, 0xf5, 0xec, 0xbb, 0x01, 0xd4, 0xd6, 0xe8, 0xb8, 0x55, 0x1f,
  5894. 0x7a, 0xbe, 0x18, 0x92, 0x62, 0x50, 0x12, 0xc2, 0x48, 0x17, 0x8b, 0x2e,
  5895. 0xc1, 0x2d, 0x64, 0xd8, 0x40, 0x63, 0xf8, 0x7f, 0x12, 0x79, 0x28, 0xeb,
  5896. 0xab, 0x06, 0xcf, 0xc3, 0x77, 0xfd, 0x96, 0x55, 0xaa, 0xdb, 0xa3, 0x61,
  5897. 0xb9, 0x3f, 0x97, 0x6e, 0x51, 0x33, 0xb6, 0xfb, 0x87, 0x45, 0xf1, 0x30,
  5898. 0xd8, 0xc5, 0xea, 0xe6, 0xf0, 0xd3, 0x85, 0x7f, 0xe5, 0xc6, 0x89, 0x04,
  5899. 0xad, 0xea, 0xa2, 0x24, 0xcc, 0xb9, 0x3a, 0x96, 0x0e, 0xd7, 0x9e, 0xcf,
  5900. 0x55, 0xd6, 0xaf, 0x30, 0x7d, 0x28, 0x73, 0x66, 0xb8, 0xa2, 0xd4, 0x66,
  5901. 0xb9, 0x5e, 0xdb, 0xa1, 0x42, 0xe8, 0x6d, 0x12,
  5902. }
  5903. };
  5904. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5905. result = do_hmac_prng_pr_false_test(112, &vec);
  5906. TC_END_RESULT(result);
  5907. return result;
  5908. }
  5909. unsigned int test_113(void)
  5910. {
  5911. unsigned int result = TC_PASS;
  5912. const struct hmac_prng_test_vector vec = {
  5913. 32,
  5914. 16,
  5915. 32,
  5916. 0,
  5917. 128,
  5918. {
  5919. 0x85, 0xb6, 0x0f, 0xaa, 0x4e, 0xbf, 0xde, 0x82, 0x5f, 0x0a, 0x49, 0x70,
  5920. 0xc8, 0x0c, 0x78, 0xe3, 0x77, 0xa5, 0x1d, 0xce, 0xbb, 0x09, 0x45, 0x3a,
  5921. 0x03, 0xb6, 0x46, 0xcb, 0xdc, 0x1c, 0x2f, 0x0e,
  5922. },
  5923. {
  5924. 0xfb, 0x4d, 0xff, 0x7e, 0x1a, 0xd3, 0x7f, 0x1d, 0x00, 0xa1, 0x00, 0xde,
  5925. 0x0a, 0x9d, 0x5d, 0x2b,
  5926. },
  5927. {
  5928. 0x46, 0x10, 0xc5, 0x65, 0x63, 0x72, 0x6c, 0x7b, 0xaa, 0x3a, 0x21, 0x12,
  5929. 0x90, 0x4a, 0xd8, 0x03, 0x62, 0x55, 0xc9, 0x2f, 0xe7, 0x48, 0xd6, 0x5f,
  5930. 0x12, 0x33, 0x35, 0x48, 0x96, 0xfe, 0xe7, 0x2a,
  5931. },
  5932. {
  5933. 0x85, 0x40, 0x56, 0x92, 0x7b, 0x35, 0x05, 0x3b, 0x57, 0x44, 0x8a, 0x2e,
  5934. 0x0b, 0x6c, 0x7c, 0xf3, 0x71, 0xce, 0x10, 0x79, 0x7e, 0xab, 0x1c, 0x0a,
  5935. 0x00, 0x9d, 0x7a, 0xbd, 0x1a, 0x06, 0x7c, 0xcc,
  5936. },
  5937. {
  5938. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5939. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5940. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5941. },
  5942. {
  5943. 0x19, 0x42, 0xa4, 0xdc, 0x08, 0xfe, 0x8d, 0x92, 0xf5, 0xfa, 0x58, 0x17,
  5944. 0x56, 0xdd, 0xc3, 0xf7, 0xa3, 0x21, 0xcb, 0x96, 0x93, 0x3c, 0xc1, 0x93,
  5945. 0x71, 0x1a, 0x0f, 0x64, 0x40, 0xa7, 0x6b, 0x6c, 0x5a, 0x5d, 0xb8, 0x06,
  5946. 0x9c, 0x5c, 0x82, 0xfe, 0x3e, 0x1c, 0xdf, 0x3f, 0x35, 0x20, 0xde, 0xb1,
  5947. 0x65, 0x2a, 0x96, 0x98, 0xf9, 0x72, 0x6f, 0xd4, 0x04, 0x8b, 0xab, 0xaf,
  5948. 0x07, 0x05, 0x0e, 0x93, 0x7d, 0x56, 0x54, 0x28, 0x99, 0xee, 0xa5, 0xec,
  5949. 0x2c, 0x16, 0x91, 0x9a, 0x36, 0x0d, 0xe5, 0xcc, 0xf4, 0x9e, 0xee, 0xd1,
  5950. 0x15, 0xee, 0x02, 0xc0, 0x67, 0xb7, 0x25, 0x52, 0xbc, 0x4d, 0x4e, 0xef,
  5951. 0xb6, 0xaa, 0x91, 0xa2, 0x33, 0xdd, 0x73, 0x17, 0x95, 0x9a, 0x7e, 0x80,
  5952. 0xe1, 0x6b, 0x17, 0x37, 0x91, 0x84, 0x50, 0x3c, 0xbf, 0x39, 0x31, 0xa6,
  5953. 0x9e, 0x90, 0x2d, 0x97, 0xf8, 0x20, 0xf8, 0x03,
  5954. }
  5955. };
  5956. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  5957. result = do_hmac_prng_pr_false_test(113, &vec);
  5958. TC_END_RESULT(result);
  5959. return result;
  5960. }
  5961. unsigned int test_114(void)
  5962. {
  5963. unsigned int result = TC_PASS;
  5964. const struct hmac_prng_test_vector vec = {
  5965. 32,
  5966. 16,
  5967. 32,
  5968. 0,
  5969. 128,
  5970. {
  5971. 0xbb, 0x71, 0x47, 0xf6, 0x74, 0x54, 0x51, 0x7b, 0x2f, 0x2b, 0x10, 0x37,
  5972. 0x90, 0xb4, 0x42, 0x47, 0xef, 0xb5, 0x28, 0xa7, 0x7a, 0x05, 0xaa, 0x22,
  5973. 0x0c, 0x8f, 0xe4, 0x0b, 0x32, 0x3a, 0x1f, 0x0a,
  5974. },
  5975. {
  5976. 0x33, 0xb4, 0x2b, 0x70, 0xeb, 0x65, 0xd9, 0x85, 0xf2, 0x47, 0x61, 0x36,
  5977. 0xc9, 0x49, 0xca, 0x18,
  5978. },
  5979. {
  5980. 0x7e, 0xaa, 0x52, 0xf6, 0xd4, 0x35, 0x29, 0x8f, 0xda, 0x70, 0xef, 0x9a,
  5981. 0xba, 0xe9, 0x0e, 0xb5, 0x49, 0x68, 0xbd, 0x2b, 0x4c, 0xe7, 0x49, 0x83,
  5982. 0x6c, 0xb2, 0xb1, 0x1e, 0x45, 0x2f, 0x67, 0x68,
  5983. },
  5984. {
  5985. 0x4c, 0x26, 0x86, 0xe2, 0xed, 0xc7, 0xa2, 0x5b, 0xc9, 0x27, 0x46, 0x42,
  5986. 0xb8, 0x86, 0xf1, 0x51, 0x0c, 0x4d, 0x0f, 0x00, 0x71, 0x5b, 0x75, 0x90,
  5987. 0x1a, 0x40, 0xf3, 0xd1, 0x53, 0x77, 0x88, 0xfc,
  5988. },
  5989. {
  5990. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5991. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5992. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5993. },
  5994. {
  5995. 0x50, 0xdc, 0x60, 0xbf, 0x8d, 0xf4, 0xb7, 0x3e, 0x0c, 0x95, 0xb3, 0xe1,
  5996. 0x73, 0x64, 0x11, 0x1d, 0xde, 0xff, 0x81, 0x44, 0x24, 0x60, 0xd6, 0xc9,
  5997. 0x35, 0xe1, 0xfc, 0x5d, 0x2e, 0xd2, 0x95, 0xc2, 0x54, 0xc5, 0xc9, 0xf3,
  5998. 0x9d, 0x18, 0xf6, 0x54, 0x0e, 0x69, 0x7a, 0x1a, 0x7f, 0xc5, 0x88, 0xb3,
  5999. 0x7e, 0x8f, 0xc4, 0x5f, 0x31, 0x4c, 0x06, 0xe9, 0xeb, 0x04, 0x45, 0x8f,
  6000. 0x3b, 0xd1, 0x8d, 0x23, 0xfb, 0x33, 0xdb, 0x2a, 0x31, 0x85, 0xa0, 0xcb,
  6001. 0x2b, 0x2d, 0x9b, 0xa6, 0x09, 0x15, 0x38, 0xe8, 0x5c, 0x2d, 0x6f, 0xba,
  6002. 0xc0, 0x20, 0x1f, 0xec, 0xd3, 0x37, 0xd2, 0x68, 0x34, 0x7a, 0xd8, 0xf3,
  6003. 0x04, 0x21, 0x3c, 0x3a, 0xf9, 0x45, 0xca, 0x31, 0xed, 0xf8, 0xbe, 0x84,
  6004. 0x7a, 0x7b, 0x56, 0xd7, 0xbd, 0xcd, 0x30, 0x83, 0x99, 0xb0, 0x65, 0x02,
  6005. 0x79, 0x44, 0x43, 0xf7, 0x38, 0xf6, 0xee, 0x55,
  6006. }
  6007. };
  6008. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  6009. result = do_hmac_prng_pr_false_test(114, &vec);
  6010. TC_END_RESULT(result);
  6011. return result;
  6012. }
  6013. unsigned int test_115(void)
  6014. {
  6015. unsigned int result = TC_PASS;
  6016. const struct hmac_prng_test_vector vec = {
  6017. 32,
  6018. 16,
  6019. 32,
  6020. 0,
  6021. 128,
  6022. {
  6023. 0xd7, 0xdc, 0xdf, 0xaa, 0x81, 0xc3, 0x51, 0x19, 0xa4, 0x69, 0x51, 0xae,
  6024. 0xd8, 0xd8, 0x89, 0x95, 0x02, 0xfc, 0x21, 0xb9, 0x09, 0xc8, 0xde, 0x8c,
  6025. 0xf3, 0xa5, 0x67, 0xc1, 0xae, 0x81, 0x16, 0x1d,
  6026. },
  6027. {
  6028. 0x4c, 0x24, 0x49, 0x56, 0x7c, 0x08, 0x67, 0xc9, 0xf4, 0x3b, 0x75, 0x28,
  6029. 0x60, 0xe3, 0x4b, 0xde,
  6030. },
  6031. {
  6032. 0x09, 0x41, 0x7a, 0x19, 0x12, 0xef, 0xc0, 0x14, 0x65, 0xa8, 0x68, 0x2f,
  6033. 0xf7, 0x13, 0x78, 0x70, 0x65, 0x24, 0xb4, 0x6a, 0x0c, 0x27, 0x22, 0x0e,
  6034. 0x9e, 0x40, 0xec, 0x43, 0x07, 0x3c, 0x56, 0x3c,
  6035. },
  6036. {
  6037. 0x54, 0x8a, 0x97, 0xb1, 0x12, 0xab, 0x6c, 0xcb, 0x57, 0x8d, 0xd7, 0x75,
  6038. 0x99, 0xdf, 0x0c, 0xac, 0xde, 0x33, 0x2a, 0xc1, 0xa6, 0x00, 0x88, 0xdc,
  6039. 0x01, 0x8d, 0x18, 0x38, 0x75, 0xb6, 0x1c, 0x51,
  6040. },
  6041. {
  6042. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6043. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6044. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6045. },
  6046. {
  6047. 0xb2, 0x00, 0xd6, 0x98, 0xfc, 0x72, 0xf0, 0x1e, 0x97, 0x09, 0xe5, 0x3a,
  6048. 0x0c, 0xa4, 0x82, 0xed, 0x3b, 0xe1, 0x0e, 0x27, 0x72, 0x96, 0x42, 0x4c,
  6049. 0xef, 0xd1, 0x10, 0x72, 0xc7, 0xb1, 0x9b, 0xdd, 0xf7, 0x0f, 0xf1, 0x37,
  6050. 0xc9, 0x56, 0xe4, 0xd1, 0x1d, 0x8e, 0xb1, 0xeb, 0x29, 0xbb, 0xe4, 0x97,
  6051. 0x9c, 0xba, 0x9e, 0x2e, 0xb9, 0x41, 0xf5, 0x29, 0xea, 0x96, 0x84, 0xce,
  6052. 0xc6, 0x61, 0x4a, 0x5f, 0x8c, 0x30, 0x95, 0x0d, 0x95, 0x44, 0x14, 0x8f,
  6053. 0xc4, 0xc9, 0x2b, 0xb8, 0xb7, 0xba, 0x89, 0x9e, 0x72, 0x17, 0x48, 0xa1,
  6054. 0xd6, 0xbf, 0x5e, 0x8b, 0xb6, 0x42, 0x9b, 0xa9, 0x02, 0x0e, 0x08, 0x9a,
  6055. 0x7c, 0x1e, 0x91, 0x0c, 0x8f, 0xc7, 0x08, 0xe0, 0x2b, 0xe7, 0x5e, 0xfb,
  6056. 0x89, 0xf0, 0x0d, 0x6f, 0x8b, 0x52, 0x05, 0x40, 0x62, 0xe4, 0x33, 0x43,
  6057. 0xa6, 0x0d, 0xee, 0xd3, 0x9c, 0xd8, 0x75, 0x6a,
  6058. }
  6059. };
  6060. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  6061. result = do_hmac_prng_pr_false_test(115, &vec);
  6062. TC_END_RESULT(result);
  6063. return result;
  6064. }
  6065. unsigned int test_116(void)
  6066. {
  6067. unsigned int result = TC_PASS;
  6068. const struct hmac_prng_test_vector vec = {
  6069. 32,
  6070. 16,
  6071. 32,
  6072. 0,
  6073. 128,
  6074. {
  6075. 0x79, 0xad, 0xc5, 0xce, 0xae, 0xf7, 0x71, 0x10, 0x24, 0x01, 0xac, 0xc2,
  6076. 0xfc, 0xb3, 0xd0, 0x1d, 0x9b, 0xf7, 0x54, 0x1e, 0xd8, 0x6e, 0x8a, 0xa1,
  6077. 0x6c, 0x93, 0x8d, 0x95, 0x56, 0x82, 0x9a, 0x8e,
  6078. },
  6079. {
  6080. 0x37, 0x9d, 0x9a, 0xeb, 0xe0, 0xbd, 0xbc, 0xa0, 0x7c, 0x77, 0x4b, 0x5e,
  6081. 0xf1, 0xee, 0x73, 0x2d,
  6082. },
  6083. {
  6084. 0x8b, 0x13, 0x32, 0x6a, 0x52, 0x19, 0x57, 0xed, 0xe0, 0x04, 0x23, 0x5c,
  6085. 0xd1, 0x38, 0x76, 0x7b, 0x7f, 0x45, 0xf5, 0x50, 0xf2, 0xfc, 0x55, 0xb1,
  6086. 0xf6, 0x7c, 0xdc, 0xc7, 0x09, 0x23, 0x81, 0x1d,
  6087. },
  6088. {
  6089. 0xe2, 0x68, 0xce, 0xa9, 0xdd, 0xeb, 0x0c, 0xca, 0x53, 0x88, 0xe1, 0x24,
  6090. 0x17, 0xd9, 0x0c, 0x7f, 0xab, 0x62, 0x9b, 0x2b, 0x2c, 0x14, 0x4d, 0xdc,
  6091. 0x80, 0x54, 0xd0, 0x42, 0x10, 0x58, 0x67, 0x14,
  6092. },
  6093. {
  6094. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6095. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6096. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6097. },
  6098. {
  6099. 0x00, 0x8f, 0xed, 0xe4, 0x41, 0xe5, 0x50, 0x95, 0x5d, 0x75, 0x9c, 0x89,
  6100. 0x22, 0x93, 0x59, 0xf6, 0xa0, 0x6e, 0xc2, 0xc0, 0x6c, 0xe2, 0xdc, 0xf4,
  6101. 0x2b, 0xb7, 0x2f, 0x25, 0x5c, 0x28, 0xed, 0x75, 0x8b, 0x38, 0xa5, 0xf7,
  6102. 0xf7, 0xea, 0x94, 0x51, 0xa1, 0xc9, 0xb7, 0xa6, 0x88, 0xd3, 0x79, 0xc9,
  6103. 0xd3, 0x6f, 0xa7, 0xc8, 0x6e, 0xb1, 0x1b, 0x67, 0xf4, 0xe3, 0xb9, 0x83,
  6104. 0xfe, 0x4b, 0x42, 0x15, 0x9f, 0xa6, 0x23, 0xf5, 0x5e, 0xea, 0x9f, 0xb1,
  6105. 0xff, 0x36, 0x76, 0xad, 0x54, 0x7d, 0xf4, 0x69, 0x60, 0x7a, 0x03, 0xe8,
  6106. 0xf8, 0x32, 0x26, 0x79, 0x68, 0xc8, 0x38, 0x8b, 0x2d, 0xb8, 0x49, 0x16,
  6107. 0x6a, 0x98, 0xa9, 0x8a, 0xef, 0x8d, 0x9e, 0x25, 0x88, 0x8b, 0x1f, 0x6a,
  6108. 0xec, 0x3d, 0x66, 0xa0, 0x26, 0x35, 0x32, 0x59, 0xbd, 0xa9, 0x02, 0xdf,
  6109. 0x45, 0x5e, 0x6d, 0x2d, 0x52, 0x2c, 0xde, 0xd4,
  6110. }
  6111. };
  6112. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  6113. result = do_hmac_prng_pr_false_test(116, &vec);
  6114. TC_END_RESULT(result);
  6115. return result;
  6116. }
  6117. unsigned int test_117(void)
  6118. {
  6119. unsigned int result = TC_PASS;
  6120. const struct hmac_prng_test_vector vec = {
  6121. 32,
  6122. 16,
  6123. 32,
  6124. 0,
  6125. 128,
  6126. {
  6127. 0x37, 0x6d, 0xfb, 0x59, 0x42, 0x41, 0x45, 0x42, 0x0a, 0xc6, 0x59, 0x67,
  6128. 0x14, 0x5f, 0x6f, 0xa5, 0x1a, 0xac, 0xec, 0x27, 0xbe, 0xa1, 0xd3, 0xf9,
  6129. 0xf8, 0xb7, 0x61, 0x6f, 0xcb, 0x36, 0xf7, 0x3b,
  6130. },
  6131. {
  6132. 0x56, 0x4c, 0x1c, 0xb8, 0x2b, 0xef, 0x2b, 0xdc, 0x2c, 0x69, 0x99, 0x55,
  6133. 0xbd, 0x2b, 0x07, 0x77,
  6134. },
  6135. {
  6136. 0xa0, 0x83, 0x9d, 0xaa, 0xac, 0xe6, 0xff, 0x20, 0x9f, 0xba, 0x71, 0xc6,
  6137. 0xbb, 0xba, 0x05, 0x84, 0x49, 0x7c, 0xff, 0x77, 0x5d, 0x86, 0x50, 0x72,
  6138. 0x28, 0x71, 0x7b, 0x57, 0x6f, 0x3d, 0x5e, 0xd2,
  6139. },
  6140. {
  6141. 0x23, 0x0d, 0xa7, 0x2e, 0x74, 0x36, 0x7d, 0x92, 0x10, 0x77, 0xb7, 0xc3,
  6142. 0x8c, 0x11, 0xeb, 0x9e, 0x17, 0x13, 0x1f, 0x7e, 0xe4, 0xff, 0x58, 0x0e,
  6143. 0xd8, 0x83, 0x53, 0x0d, 0xac, 0xf3, 0x41, 0x99,
  6144. },
  6145. {
  6146. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6147. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6148. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6149. },
  6150. {
  6151. 0xa7, 0xfe, 0xff, 0x8c, 0x68, 0x59, 0xff, 0x3d, 0x69, 0x54, 0x3b, 0xe6,
  6152. 0x16, 0x57, 0xc8, 0xc1, 0x9b, 0xe1, 0x2b, 0x9f, 0x2b, 0x53, 0x48, 0xb9,
  6153. 0x4f, 0x23, 0x70, 0x04, 0x43, 0x7a, 0x20, 0xc6, 0xbe, 0x86, 0x19, 0xd5,
  6154. 0x31, 0x00, 0x5f, 0xc4, 0x7f, 0xcd, 0x6a, 0x1f, 0x07, 0x38, 0x0f, 0xca,
  6155. 0x90, 0x75, 0xfb, 0x11, 0x48, 0xf5, 0xe3, 0xe1, 0x57, 0x16, 0x99, 0x8c,
  6156. 0x12, 0x68, 0xba, 0xc9, 0x72, 0xf9, 0x4e, 0x1b, 0x3e, 0xdb, 0x89, 0xe2,
  6157. 0x86, 0xa7, 0xb3, 0x6a, 0x53, 0xc0, 0x21, 0xfc, 0xa6, 0x04, 0x53, 0xd7,
  6158. 0xfb, 0x03, 0xa4, 0xeb, 0x00, 0x96, 0x0d, 0xe3, 0x1c, 0x45, 0x8b, 0x37,
  6159. 0x79, 0x86, 0xaf, 0x33, 0xfc, 0xfc, 0xef, 0xa7, 0xf6, 0xc9, 0x38, 0xc7,
  6160. 0xfc, 0x61, 0x83, 0x37, 0xd4, 0xec, 0x8b, 0xd9, 0x42, 0xb2, 0x3a, 0xb0,
  6161. 0x1b, 0xb3, 0xb3, 0xde, 0x27, 0x0c, 0xc9, 0xa9,
  6162. }
  6163. };
  6164. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  6165. result = do_hmac_prng_pr_false_test(117, &vec);
  6166. TC_END_RESULT(result);
  6167. return result;
  6168. }
  6169. unsigned int test_118(void)
  6170. {
  6171. unsigned int result = TC_PASS;
  6172. const struct hmac_prng_test_vector vec = {
  6173. 32,
  6174. 16,
  6175. 32,
  6176. 0,
  6177. 128,
  6178. {
  6179. 0xfd, 0xbe, 0xe9, 0xba, 0xff, 0x0d, 0x02, 0x17, 0x18, 0xbc, 0x07, 0x32,
  6180. 0xce, 0x5b, 0x2e, 0x0b, 0xba, 0x13, 0x3b, 0xd3, 0x19, 0xb4, 0xc5, 0x37,
  6181. 0x5c, 0xbe, 0x32, 0xda, 0x82, 0x74, 0xef, 0x72,
  6182. },
  6183. {
  6184. 0x68, 0x48, 0xa7, 0x8d, 0xac, 0x81, 0x74, 0x3c, 0x0a, 0xc4, 0xc1, 0xd7,
  6185. 0xa0, 0x8b, 0x21, 0xf3,
  6186. },
  6187. {
  6188. 0xeb, 0xc1, 0xf9, 0x76, 0x83, 0x42, 0x63, 0x2f, 0x57, 0x6f, 0x7a, 0xf5,
  6189. 0x03, 0x69, 0x95, 0x98, 0xd1, 0x3b, 0xba, 0x5f, 0xcc, 0x8f, 0xfb, 0xe2,
  6190. 0x94, 0xbd, 0xd1, 0x6b, 0x8c, 0x86, 0x5f, 0xad,
  6191. },
  6192. {
  6193. 0xcc, 0x39, 0x27, 0x64, 0x5f, 0x65, 0xf5, 0x46, 0x60, 0xc1, 0x69, 0xfd,
  6194. 0x33, 0x94, 0xa3, 0x6a, 0x98, 0x9c, 0x76, 0x0a, 0x28, 0x7f, 0x23, 0xee,
  6195. 0x8b, 0xe2, 0x3d, 0x0b, 0xcd, 0xb2, 0xbf, 0x6c,
  6196. },
  6197. {
  6198. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6199. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6200. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6201. },
  6202. {
  6203. 0xb4, 0x58, 0xae, 0xd8, 0x8a, 0x53, 0xcb, 0x5a, 0x1a, 0x15, 0x71, 0x97,
  6204. 0xb3, 0x80, 0x79, 0xcd, 0xa4, 0x55, 0xbe, 0xdb, 0xc0, 0xe6, 0x9f, 0x7c,
  6205. 0x66, 0xc1, 0xca, 0x67, 0xad, 0xec, 0x05, 0xa4, 0x11, 0x71, 0x53, 0x09,
  6206. 0x58, 0x2c, 0x7a, 0x2d, 0x57, 0x09, 0xa4, 0xd6, 0xf2, 0x7c, 0x70, 0x68,
  6207. 0x66, 0x27, 0xad, 0xec, 0xc6, 0x8f, 0x3a, 0x20, 0x45, 0xb8, 0xe7, 0xce,
  6208. 0xd5, 0xb9, 0x2b, 0x5d, 0xfa, 0x4a, 0x36, 0xe5, 0x55, 0xfd, 0x42, 0x12,
  6209. 0xf1, 0xe0, 0x33, 0xd9, 0x4a, 0x52, 0x3b, 0x16, 0xf1, 0xa4, 0xfb, 0x15,
  6210. 0xb6, 0x95, 0xd5, 0x8d, 0xf4, 0xa5, 0xbe, 0x8e, 0xe7, 0xa2, 0xb9, 0xcb,
  6211. 0xa0, 0xaf, 0x05, 0xf2, 0x94, 0xcf, 0x0d, 0xaf, 0x54, 0xca, 0xba, 0x5b,
  6212. 0xfc, 0xd2, 0x89, 0xc6, 0xf7, 0xd9, 0x78, 0xef, 0xb4, 0x12, 0x63, 0xc1,
  6213. 0xba, 0x0d, 0xeb, 0xb0, 0x6b, 0x56, 0xf3, 0xdc,
  6214. }
  6215. };
  6216. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  6217. result = do_hmac_prng_pr_false_test(118, &vec);
  6218. TC_END_RESULT(result);
  6219. return result;
  6220. }
  6221. unsigned int test_119(void)
  6222. {
  6223. unsigned int result = TC_PASS;
  6224. const struct hmac_prng_test_vector vec = {
  6225. 32,
  6226. 16,
  6227. 32,
  6228. 0,
  6229. 128,
  6230. {
  6231. 0x0d, 0x10, 0x15, 0xbc, 0xe0, 0xf7, 0xba, 0xc3, 0xc0, 0x74, 0x20, 0xb4,
  6232. 0xf3, 0xf9, 0xbe, 0xca, 0x05, 0x64, 0x87, 0x89, 0x7a, 0xb2, 0x6e, 0x8a,
  6233. 0xd5, 0xc3, 0x39, 0x03, 0x6c, 0x87, 0xa7, 0xce,
  6234. },
  6235. {
  6236. 0xad, 0x72, 0x17, 0x94, 0x44, 0x30, 0x6c, 0x67, 0x7b, 0xb2, 0x70, 0x9d,
  6237. 0x1d, 0x46, 0x4e, 0xfc,
  6238. },
  6239. {
  6240. 0xe8, 0xce, 0x89, 0xf4, 0xb7, 0xe0, 0xcb, 0xb3, 0xa2, 0xfb, 0x74, 0x79,
  6241. 0xd9, 0x5e, 0x80, 0xb3, 0x6e, 0xae, 0x5c, 0x62, 0xd7, 0x23, 0x2f, 0x26,
  6242. 0xc5, 0xa9, 0x10, 0x35, 0x99, 0xa4, 0x9b, 0xdd,
  6243. },
  6244. {
  6245. 0x15, 0x58, 0x98, 0x57, 0x01, 0x04, 0x68, 0xca, 0x37, 0xcb, 0x83, 0xad,
  6246. 0xd5, 0x9c, 0xfc, 0x73, 0x3f, 0x6e, 0x97, 0xf9, 0x53, 0xe2, 0xf8, 0xb8,
  6247. 0xb9, 0x8f, 0xab, 0xb8, 0x1f, 0x60, 0x8e, 0x47,
  6248. },
  6249. {
  6250. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6251. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6252. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6253. },
  6254. {
  6255. 0xcd, 0xb7, 0xa1, 0x15, 0x16, 0x1c, 0x33, 0x2a, 0x97, 0xca, 0xee, 0xa6,
  6256. 0xeb, 0x7a, 0x6b, 0xfd, 0x29, 0x9a, 0x76, 0x8a, 0x8f, 0x78, 0x27, 0xdf,
  6257. 0x16, 0x30, 0x48, 0xf4, 0xdb, 0xf1, 0x75, 0x0e, 0xe1, 0xe8, 0x4d, 0x52,
  6258. 0x1b, 0x80, 0x01, 0xad, 0x7d, 0xbf, 0x97, 0xa8, 0x67, 0xfb, 0x2b, 0x99,
  6259. 0xd2, 0x1f, 0x99, 0x52, 0x4b, 0x84, 0x11, 0x36, 0x36, 0x36, 0xe2, 0xd4,
  6260. 0x40, 0xe9, 0x4f, 0x26, 0xf2, 0xdd, 0x93, 0x51, 0x6e, 0x08, 0x96, 0x4d,
  6261. 0x29, 0x1f, 0x49, 0x96, 0x1a, 0xd2, 0xf3, 0xfa, 0x21, 0xf6, 0xac, 0x7a,
  6262. 0x00, 0xda, 0x08, 0xdb, 0xd8, 0x3c, 0x52, 0x02, 0x31, 0xa9, 0x7e, 0x48,
  6263. 0x29, 0xf6, 0x76, 0xfb, 0xc1, 0x87, 0x17, 0xab, 0xce, 0xdc, 0x4d, 0xee,
  6264. 0x2a, 0x41, 0x44, 0x0d, 0x57, 0x97, 0xab, 0x01, 0x45, 0x37, 0xa4, 0x2f,
  6265. 0x59, 0x53, 0xa9, 0x59, 0x53, 0x5b, 0x3c, 0x81,
  6266. }
  6267. };
  6268. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  6269. result = do_hmac_prng_pr_false_test(119, &vec);
  6270. TC_END_RESULT(result);
  6271. return result;
  6272. }
  6273. unsigned int test_120(void)
  6274. {
  6275. unsigned int result = TC_PASS;
  6276. const struct hmac_prng_test_vector vec = {
  6277. 32,
  6278. 16,
  6279. 32,
  6280. 0,
  6281. 128,
  6282. {
  6283. 0x92, 0x84, 0xfd, 0x46, 0x60, 0xbe, 0xb7, 0xa1, 0x54, 0x34, 0x9d, 0x74,
  6284. 0xe2, 0xad, 0x84, 0x42, 0xa5, 0xac, 0x06, 0x67, 0xac, 0x4d, 0x28, 0xda,
  6285. 0xf0, 0x52, 0x9d, 0xac, 0x5c, 0x80, 0x5a, 0x21,
  6286. },
  6287. {
  6288. 0xaf, 0xe9, 0x6e, 0x33, 0xc6, 0xd5, 0xbe, 0xf1, 0x65, 0x28, 0x21, 0xde,
  6289. 0xdb, 0x96, 0x41, 0x83,
  6290. },
  6291. {
  6292. 0x1b, 0x34, 0x19, 0xbe, 0xc2, 0x51, 0x35, 0x31, 0xfa, 0x5f, 0xaf, 0xb4,
  6293. 0x27, 0x85, 0xeb, 0x07, 0xec, 0x01, 0xb6, 0x1a, 0x1e, 0x06, 0x45, 0x28,
  6294. 0x08, 0xb2, 0x27, 0xf5, 0xf5, 0xc8, 0x73, 0xcf,
  6295. },
  6296. {
  6297. 0xf4, 0x94, 0x2b, 0x20, 0xa4, 0x25, 0x89, 0xa2, 0x2e, 0x1b, 0x3b, 0x22,
  6298. 0x14, 0x33, 0x6d, 0x1b, 0xa3, 0xb1, 0x17, 0x53, 0x93, 0x7b, 0x93, 0xf1,
  6299. 0xd7, 0xc3, 0x63, 0x6b, 0x34, 0x6d, 0x70, 0xa1,
  6300. },
  6301. {
  6302. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6303. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6304. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6305. },
  6306. {
  6307. 0xf0, 0xb8, 0x7f, 0x8c, 0x3c, 0x67, 0xf4, 0xdf, 0x3c, 0xc6, 0x13, 0xc3,
  6308. 0xc6, 0x79, 0x99, 0x67, 0x59, 0x51, 0x17, 0x7c, 0x2d, 0x7d, 0x64, 0x6e,
  6309. 0xc0, 0x3e, 0x52, 0x22, 0x67, 0xea, 0x1d, 0x39, 0xd4, 0x20, 0x60, 0xd8,
  6310. 0xb1, 0x57, 0x77, 0x4a, 0xf7, 0xad, 0x7f, 0xd7, 0xf8, 0x51, 0xf9, 0xc1,
  6311. 0x3a, 0xaf, 0xa5, 0x6a, 0x64, 0xd7, 0xc0, 0xff, 0x86, 0xc8, 0xdd, 0x95,
  6312. 0x88, 0xf6, 0x9c, 0x6e, 0x7a, 0x96, 0x80, 0x75, 0x9b, 0xc1, 0xb6, 0x02,
  6313. 0x79, 0x8b, 0x23, 0x95, 0x9f, 0xe5, 0x4f, 0xf4, 0xbd, 0x2c, 0xe2, 0xd8,
  6314. 0xed, 0xe7, 0x29, 0x8f, 0x68, 0x80, 0x1a, 0xad, 0x61, 0x97, 0x74, 0x85,
  6315. 0xe0, 0xac, 0xba, 0xde, 0xec, 0xf4, 0x7b, 0x7e, 0xb3, 0x0e, 0x92, 0xf4,
  6316. 0x06, 0xd9, 0x73, 0xe3, 0x26, 0x51, 0x8d, 0xb3, 0xaf, 0x0e, 0xa0, 0x6e,
  6317. 0xa5, 0x74, 0xba, 0x7b, 0x01, 0x61, 0xab, 0xf2,
  6318. }
  6319. };
  6320. TC_PRINT("HMAC-PRNG %s:\n", __func__);
  6321. result = do_hmac_prng_pr_false_test(120, &vec);
  6322. TC_END_RESULT(result);
  6323. return result;
  6324. }
  6325. /*
  6326. * Main task to test HMAC-PRNG
  6327. */
  6328. int main(void)
  6329. {
  6330. unsigned int result = TC_PASS;
  6331. TC_START("Performing HMAC-PRNG tests:");
  6332. result = test_1();
  6333. if (result == TC_FAIL) {
  6334. /* terminate test */
  6335. TC_ERROR("HMAC test #{test_number} failed.\n");
  6336. goto exitTest;
  6337. }
  6338. result = test_2();
  6339. if (result == TC_FAIL) {
  6340. /* terminate test */
  6341. TC_ERROR("HMAC test #{test_number} failed.\n");
  6342. goto exitTest;
  6343. }
  6344. result = test_3();
  6345. if (result == TC_FAIL) {
  6346. /* terminate test */
  6347. TC_ERROR("HMAC test #{test_number} failed.\n");
  6348. goto exitTest;
  6349. }
  6350. result = test_4();
  6351. if (result == TC_FAIL) {
  6352. /* terminate test */
  6353. TC_ERROR("HMAC test #{test_number} failed.\n");
  6354. goto exitTest;
  6355. }
  6356. result = test_5();
  6357. if (result == TC_FAIL) {
  6358. /* terminate test */
  6359. TC_ERROR("HMAC test #{test_number} failed.\n");
  6360. goto exitTest;
  6361. }
  6362. result = test_6();
  6363. if (result == TC_FAIL) {
  6364. /* terminate test */
  6365. TC_ERROR("HMAC test #{test_number} failed.\n");
  6366. goto exitTest;
  6367. }
  6368. result = test_7();
  6369. if (result == TC_FAIL) {
  6370. /* terminate test */
  6371. TC_ERROR("HMAC test #{test_number} failed.\n");
  6372. goto exitTest;
  6373. }
  6374. result = test_8();
  6375. if (result == TC_FAIL) {
  6376. /* terminate test */
  6377. TC_ERROR("HMAC test #{test_number} failed.\n");
  6378. goto exitTest;
  6379. }
  6380. result = test_9();
  6381. if (result == TC_FAIL) {
  6382. /* terminate test */
  6383. TC_ERROR("HMAC test #{test_number} failed.\n");
  6384. goto exitTest;
  6385. }
  6386. result = test_10();
  6387. if (result == TC_FAIL) {
  6388. /* terminate test */
  6389. TC_ERROR("HMAC test #{test_number} failed.\n");
  6390. goto exitTest;
  6391. }
  6392. result = test_11();
  6393. if (result == TC_FAIL) {
  6394. /* terminate test */
  6395. TC_ERROR("HMAC test #{test_number} failed.\n");
  6396. goto exitTest;
  6397. }
  6398. result = test_12();
  6399. if (result == TC_FAIL) {
  6400. /* terminate test */
  6401. TC_ERROR("HMAC test #{test_number} failed.\n");
  6402. goto exitTest;
  6403. }
  6404. result = test_13();
  6405. if (result == TC_FAIL) {
  6406. /* terminate test */
  6407. TC_ERROR("HMAC test #{test_number} failed.\n");
  6408. goto exitTest;
  6409. }
  6410. result = test_14();
  6411. if (result == TC_FAIL) {
  6412. /* terminate test */
  6413. TC_ERROR("HMAC test #{test_number} failed.\n");
  6414. goto exitTest;
  6415. }
  6416. result = test_15();
  6417. if (result == TC_FAIL) {
  6418. /* terminate test */
  6419. TC_ERROR("HMAC test #{test_number} failed.\n");
  6420. goto exitTest;
  6421. }
  6422. result = test_16();
  6423. if (result == TC_FAIL) {
  6424. /* terminate test */
  6425. TC_ERROR("HMAC test #{test_number} failed.\n");
  6426. goto exitTest;
  6427. }
  6428. result = test_17();
  6429. if (result == TC_FAIL) {
  6430. /* terminate test */
  6431. TC_ERROR("HMAC test #{test_number} failed.\n");
  6432. goto exitTest;
  6433. }
  6434. result = test_18();
  6435. if (result == TC_FAIL) {
  6436. /* terminate test */
  6437. TC_ERROR("HMAC test #{test_number} failed.\n");
  6438. goto exitTest;
  6439. }
  6440. result = test_19();
  6441. if (result == TC_FAIL) {
  6442. /* terminate test */
  6443. TC_ERROR("HMAC test #{test_number} failed.\n");
  6444. goto exitTest;
  6445. }
  6446. result = test_20();
  6447. if (result == TC_FAIL) {
  6448. /* terminate test */
  6449. TC_ERROR("HMAC test #{test_number} failed.\n");
  6450. goto exitTest;
  6451. }
  6452. result = test_21();
  6453. if (result == TC_FAIL) {
  6454. /* terminate test */
  6455. TC_ERROR("HMAC test #{test_number} failed.\n");
  6456. goto exitTest;
  6457. }
  6458. result = test_22();
  6459. if (result == TC_FAIL) {
  6460. /* terminate test */
  6461. TC_ERROR("HMAC test #{test_number} failed.\n");
  6462. goto exitTest;
  6463. }
  6464. result = test_23();
  6465. if (result == TC_FAIL) {
  6466. /* terminate test */
  6467. TC_ERROR("HMAC test #{test_number} failed.\n");
  6468. goto exitTest;
  6469. }
  6470. result = test_24();
  6471. if (result == TC_FAIL) {
  6472. /* terminate test */
  6473. TC_ERROR("HMAC test #{test_number} failed.\n");
  6474. goto exitTest;
  6475. }
  6476. result = test_25();
  6477. if (result == TC_FAIL) {
  6478. /* terminate test */
  6479. TC_ERROR("HMAC test #{test_number} failed.\n");
  6480. goto exitTest;
  6481. }
  6482. result = test_26();
  6483. if (result == TC_FAIL) {
  6484. /* terminate test */
  6485. TC_ERROR("HMAC test #{test_number} failed.\n");
  6486. goto exitTest;
  6487. }
  6488. result = test_27();
  6489. if (result == TC_FAIL) {
  6490. /* terminate test */
  6491. TC_ERROR("HMAC test #{test_number} failed.\n");
  6492. goto exitTest;
  6493. }
  6494. result = test_28();
  6495. if (result == TC_FAIL) {
  6496. /* terminate test */
  6497. TC_ERROR("HMAC test #{test_number} failed.\n");
  6498. goto exitTest;
  6499. }
  6500. result = test_29();
  6501. if (result == TC_FAIL) {
  6502. /* terminate test */
  6503. TC_ERROR("HMAC test #{test_number} failed.\n");
  6504. goto exitTest;
  6505. }
  6506. result = test_30();
  6507. if (result == TC_FAIL) {
  6508. /* terminate test */
  6509. TC_ERROR("HMAC test #{test_number} failed.\n");
  6510. goto exitTest;
  6511. }
  6512. result = test_31();
  6513. if (result == TC_FAIL) {
  6514. /* terminate test */
  6515. TC_ERROR("HMAC test #{test_number} failed.\n");
  6516. goto exitTest;
  6517. }
  6518. result = test_32();
  6519. if (result == TC_FAIL) {
  6520. /* terminate test */
  6521. TC_ERROR("HMAC test #{test_number} failed.\n");
  6522. goto exitTest;
  6523. }
  6524. result = test_33();
  6525. if (result == TC_FAIL) {
  6526. /* terminate test */
  6527. TC_ERROR("HMAC test #{test_number} failed.\n");
  6528. goto exitTest;
  6529. }
  6530. result = test_34();
  6531. if (result == TC_FAIL) {
  6532. /* terminate test */
  6533. TC_ERROR("HMAC test #{test_number} failed.\n");
  6534. goto exitTest;
  6535. }
  6536. result = test_35();
  6537. if (result == TC_FAIL) {
  6538. /* terminate test */
  6539. TC_ERROR("HMAC test #{test_number} failed.\n");
  6540. goto exitTest;
  6541. }
  6542. result = test_36();
  6543. if (result == TC_FAIL) {
  6544. /* terminate test */
  6545. TC_ERROR("HMAC test #{test_number} failed.\n");
  6546. goto exitTest;
  6547. }
  6548. result = test_37();
  6549. if (result == TC_FAIL) {
  6550. /* terminate test */
  6551. TC_ERROR("HMAC test #{test_number} failed.\n");
  6552. goto exitTest;
  6553. }
  6554. result = test_38();
  6555. if (result == TC_FAIL) {
  6556. /* terminate test */
  6557. TC_ERROR("HMAC test #{test_number} failed.\n");
  6558. goto exitTest;
  6559. }
  6560. result = test_39();
  6561. if (result == TC_FAIL) {
  6562. /* terminate test */
  6563. TC_ERROR("HMAC test #{test_number} failed.\n");
  6564. goto exitTest;
  6565. }
  6566. result = test_40();
  6567. if (result == TC_FAIL) {
  6568. /* terminate test */
  6569. TC_ERROR("HMAC test #{test_number} failed.\n");
  6570. goto exitTest;
  6571. }
  6572. result = test_41();
  6573. if (result == TC_FAIL) {
  6574. /* terminate test */
  6575. TC_ERROR("HMAC test #{test_number} failed.\n");
  6576. goto exitTest;
  6577. }
  6578. result = test_42();
  6579. if (result == TC_FAIL) {
  6580. /* terminate test */
  6581. TC_ERROR("HMAC test #{test_number} failed.\n");
  6582. goto exitTest;
  6583. }
  6584. result = test_43();
  6585. if (result == TC_FAIL) {
  6586. /* terminate test */
  6587. TC_ERROR("HMAC test #{test_number} failed.\n");
  6588. goto exitTest;
  6589. }
  6590. result = test_44();
  6591. if (result == TC_FAIL) {
  6592. /* terminate test */
  6593. TC_ERROR("HMAC test #{test_number} failed.\n");
  6594. goto exitTest;
  6595. }
  6596. result = test_45();
  6597. if (result == TC_FAIL) {
  6598. /* terminate test */
  6599. TC_ERROR("HMAC test #{test_number} failed.\n");
  6600. goto exitTest;
  6601. }
  6602. result = test_46();
  6603. if (result == TC_FAIL) {
  6604. /* terminate test */
  6605. TC_ERROR("HMAC test #{test_number} failed.\n");
  6606. goto exitTest;
  6607. }
  6608. result = test_47();
  6609. if (result == TC_FAIL) {
  6610. /* terminate test */
  6611. TC_ERROR("HMAC test #{test_number} failed.\n");
  6612. goto exitTest;
  6613. }
  6614. result = test_48();
  6615. if (result == TC_FAIL) {
  6616. /* terminate test */
  6617. TC_ERROR("HMAC test #{test_number} failed.\n");
  6618. goto exitTest;
  6619. }
  6620. result = test_49();
  6621. if (result == TC_FAIL) {
  6622. /* terminate test */
  6623. TC_ERROR("HMAC test #{test_number} failed.\n");
  6624. goto exitTest;
  6625. }
  6626. result = test_50();
  6627. if (result == TC_FAIL) {
  6628. /* terminate test */
  6629. TC_ERROR("HMAC test #{test_number} failed.\n");
  6630. goto exitTest;
  6631. }
  6632. result = test_51();
  6633. if (result == TC_FAIL) {
  6634. /* terminate test */
  6635. TC_ERROR("HMAC test #{test_number} failed.\n");
  6636. goto exitTest;
  6637. }
  6638. result = test_52();
  6639. if (result == TC_FAIL) {
  6640. /* terminate test */
  6641. TC_ERROR("HMAC test #{test_number} failed.\n");
  6642. goto exitTest;
  6643. }
  6644. result = test_53();
  6645. if (result == TC_FAIL) {
  6646. /* terminate test */
  6647. TC_ERROR("HMAC test #{test_number} failed.\n");
  6648. goto exitTest;
  6649. }
  6650. result = test_54();
  6651. if (result == TC_FAIL) {
  6652. /* terminate test */
  6653. TC_ERROR("HMAC test #{test_number} failed.\n");
  6654. goto exitTest;
  6655. }
  6656. result = test_55();
  6657. if (result == TC_FAIL) {
  6658. /* terminate test */
  6659. TC_ERROR("HMAC test #{test_number} failed.\n");
  6660. goto exitTest;
  6661. }
  6662. result = test_56();
  6663. if (result == TC_FAIL) {
  6664. /* terminate test */
  6665. TC_ERROR("HMAC test #{test_number} failed.\n");
  6666. goto exitTest;
  6667. }
  6668. result = test_57();
  6669. if (result == TC_FAIL) {
  6670. /* terminate test */
  6671. TC_ERROR("HMAC test #{test_number} failed.\n");
  6672. goto exitTest;
  6673. }
  6674. result = test_58();
  6675. if (result == TC_FAIL) {
  6676. /* terminate test */
  6677. TC_ERROR("HMAC test #{test_number} failed.\n");
  6678. goto exitTest;
  6679. }
  6680. result = test_59();
  6681. if (result == TC_FAIL) {
  6682. /* terminate test */
  6683. TC_ERROR("HMAC test #{test_number} failed.\n");
  6684. goto exitTest;
  6685. }
  6686. result = test_60();
  6687. if (result == TC_FAIL) {
  6688. /* terminate test */
  6689. TC_ERROR("HMAC test #{test_number} failed.\n");
  6690. goto exitTest;
  6691. }
  6692. result = test_61();
  6693. if (result == TC_FAIL) {
  6694. /* terminate test */
  6695. TC_ERROR("HMAC test #{test_number} failed.\n");
  6696. goto exitTest;
  6697. }
  6698. result = test_62();
  6699. if (result == TC_FAIL) {
  6700. /* terminate test */
  6701. TC_ERROR("HMAC test #{test_number} failed.\n");
  6702. goto exitTest;
  6703. }
  6704. result = test_63();
  6705. if (result == TC_FAIL) {
  6706. /* terminate test */
  6707. TC_ERROR("HMAC test #{test_number} failed.\n");
  6708. goto exitTest;
  6709. }
  6710. result = test_64();
  6711. if (result == TC_FAIL) {
  6712. /* terminate test */
  6713. TC_ERROR("HMAC test #{test_number} failed.\n");
  6714. goto exitTest;
  6715. }
  6716. result = test_65();
  6717. if (result == TC_FAIL) {
  6718. /* terminate test */
  6719. TC_ERROR("HMAC test #{test_number} failed.\n");
  6720. goto exitTest;
  6721. }
  6722. result = test_66();
  6723. if (result == TC_FAIL) {
  6724. /* terminate test */
  6725. TC_ERROR("HMAC test #{test_number} failed.\n");
  6726. goto exitTest;
  6727. }
  6728. result = test_67();
  6729. if (result == TC_FAIL) {
  6730. /* terminate test */
  6731. TC_ERROR("HMAC test #{test_number} failed.\n");
  6732. goto exitTest;
  6733. }
  6734. result = test_68();
  6735. if (result == TC_FAIL) {
  6736. /* terminate test */
  6737. TC_ERROR("HMAC test #{test_number} failed.\n");
  6738. goto exitTest;
  6739. }
  6740. result = test_69();
  6741. if (result == TC_FAIL) {
  6742. /* terminate test */
  6743. TC_ERROR("HMAC test #{test_number} failed.\n");
  6744. goto exitTest;
  6745. }
  6746. result = test_70();
  6747. if (result == TC_FAIL) {
  6748. /* terminate test */
  6749. TC_ERROR("HMAC test #{test_number} failed.\n");
  6750. goto exitTest;
  6751. }
  6752. result = test_71();
  6753. if (result == TC_FAIL) {
  6754. /* terminate test */
  6755. TC_ERROR("HMAC test #{test_number} failed.\n");
  6756. goto exitTest;
  6757. }
  6758. result = test_72();
  6759. if (result == TC_FAIL) {
  6760. /* terminate test */
  6761. TC_ERROR("HMAC test #{test_number} failed.\n");
  6762. goto exitTest;
  6763. }
  6764. result = test_73();
  6765. if (result == TC_FAIL) {
  6766. /* terminate test */
  6767. TC_ERROR("HMAC test #{test_number} failed.\n");
  6768. goto exitTest;
  6769. }
  6770. result = test_74();
  6771. if (result == TC_FAIL) {
  6772. /* terminate test */
  6773. TC_ERROR("HMAC test #{test_number} failed.\n");
  6774. goto exitTest;
  6775. }
  6776. result = test_75();
  6777. if (result == TC_FAIL) {
  6778. /* terminate test */
  6779. TC_ERROR("HMAC test #{test_number} failed.\n");
  6780. goto exitTest;
  6781. }
  6782. result = test_76();
  6783. if (result == TC_FAIL) {
  6784. /* terminate test */
  6785. TC_ERROR("HMAC test #{test_number} failed.\n");
  6786. goto exitTest;
  6787. }
  6788. result = test_77();
  6789. if (result == TC_FAIL) {
  6790. /* terminate test */
  6791. TC_ERROR("HMAC test #{test_number} failed.\n");
  6792. goto exitTest;
  6793. }
  6794. result = test_78();
  6795. if (result == TC_FAIL) {
  6796. /* terminate test */
  6797. TC_ERROR("HMAC test #{test_number} failed.\n");
  6798. goto exitTest;
  6799. }
  6800. result = test_79();
  6801. if (result == TC_FAIL) {
  6802. /* terminate test */
  6803. TC_ERROR("HMAC test #{test_number} failed.\n");
  6804. goto exitTest;
  6805. }
  6806. result = test_80();
  6807. if (result == TC_FAIL) {
  6808. /* terminate test */
  6809. TC_ERROR("HMAC test #{test_number} failed.\n");
  6810. goto exitTest;
  6811. }
  6812. result = test_81();
  6813. if (result == TC_FAIL) {
  6814. /* terminate test */
  6815. TC_ERROR("HMAC test #{test_number} failed.\n");
  6816. goto exitTest;
  6817. }
  6818. result = test_82();
  6819. if (result == TC_FAIL) {
  6820. /* terminate test */
  6821. TC_ERROR("HMAC test #{test_number} failed.\n");
  6822. goto exitTest;
  6823. }
  6824. result = test_83();
  6825. if (result == TC_FAIL) {
  6826. /* terminate test */
  6827. TC_ERROR("HMAC test #{test_number} failed.\n");
  6828. goto exitTest;
  6829. }
  6830. result = test_84();
  6831. if (result == TC_FAIL) {
  6832. /* terminate test */
  6833. TC_ERROR("HMAC test #{test_number} failed.\n");
  6834. goto exitTest;
  6835. }
  6836. result = test_85();
  6837. if (result == TC_FAIL) {
  6838. /* terminate test */
  6839. TC_ERROR("HMAC test #{test_number} failed.\n");
  6840. goto exitTest;
  6841. }
  6842. result = test_86();
  6843. if (result == TC_FAIL) {
  6844. /* terminate test */
  6845. TC_ERROR("HMAC test #{test_number} failed.\n");
  6846. goto exitTest;
  6847. }
  6848. result = test_87();
  6849. if (result == TC_FAIL) {
  6850. /* terminate test */
  6851. TC_ERROR("HMAC test #{test_number} failed.\n");
  6852. goto exitTest;
  6853. }
  6854. result = test_88();
  6855. if (result == TC_FAIL) {
  6856. /* terminate test */
  6857. TC_ERROR("HMAC test #{test_number} failed.\n");
  6858. goto exitTest;
  6859. }
  6860. result = test_89();
  6861. if (result == TC_FAIL) {
  6862. /* terminate test */
  6863. TC_ERROR("HMAC test #{test_number} failed.\n");
  6864. goto exitTest;
  6865. }
  6866. result = test_90();
  6867. if (result == TC_FAIL) {
  6868. /* terminate test */
  6869. TC_ERROR("HMAC test #{test_number} failed.\n");
  6870. goto exitTest;
  6871. }
  6872. result = test_91();
  6873. if (result == TC_FAIL) {
  6874. /* terminate test */
  6875. TC_ERROR("HMAC test #{test_number} failed.\n");
  6876. goto exitTest;
  6877. }
  6878. result = test_92();
  6879. if (result == TC_FAIL) {
  6880. /* terminate test */
  6881. TC_ERROR("HMAC test #{test_number} failed.\n");
  6882. goto exitTest;
  6883. }
  6884. result = test_93();
  6885. if (result == TC_FAIL) {
  6886. /* terminate test */
  6887. TC_ERROR("HMAC test #{test_number} failed.\n");
  6888. goto exitTest;
  6889. }
  6890. result = test_94();
  6891. if (result == TC_FAIL) {
  6892. /* terminate test */
  6893. TC_ERROR("HMAC test #{test_number} failed.\n");
  6894. goto exitTest;
  6895. }
  6896. result = test_95();
  6897. if (result == TC_FAIL) {
  6898. /* terminate test */
  6899. TC_ERROR("HMAC test #{test_number} failed.\n");
  6900. goto exitTest;
  6901. }
  6902. result = test_96();
  6903. if (result == TC_FAIL) {
  6904. /* terminate test */
  6905. TC_ERROR("HMAC test #{test_number} failed.\n");
  6906. goto exitTest;
  6907. }
  6908. result = test_97();
  6909. if (result == TC_FAIL) {
  6910. /* terminate test */
  6911. TC_ERROR("HMAC test #{test_number} failed.\n");
  6912. goto exitTest;
  6913. }
  6914. result = test_98();
  6915. if (result == TC_FAIL) {
  6916. /* terminate test */
  6917. TC_ERROR("HMAC test #{test_number} failed.\n");
  6918. goto exitTest;
  6919. }
  6920. result = test_99();
  6921. if (result == TC_FAIL) {
  6922. /* terminate test */
  6923. TC_ERROR("HMAC test #{test_number} failed.\n");
  6924. goto exitTest;
  6925. }
  6926. result = test_100();
  6927. if (result == TC_FAIL) {
  6928. /* terminate test */
  6929. TC_ERROR("HMAC test #{test_number} failed.\n");
  6930. goto exitTest;
  6931. }
  6932. result = test_101();
  6933. if (result == TC_FAIL) {
  6934. /* terminate test */
  6935. TC_ERROR("HMAC test #{test_number} failed.\n");
  6936. goto exitTest;
  6937. }
  6938. result = test_102();
  6939. if (result == TC_FAIL) {
  6940. /* terminate test */
  6941. TC_ERROR("HMAC test #{test_number} failed.\n");
  6942. goto exitTest;
  6943. }
  6944. result = test_103();
  6945. if (result == TC_FAIL) {
  6946. /* terminate test */
  6947. TC_ERROR("HMAC test #{test_number} failed.\n");
  6948. goto exitTest;
  6949. }
  6950. result = test_104();
  6951. if (result == TC_FAIL) {
  6952. /* terminate test */
  6953. TC_ERROR("HMAC test #{test_number} failed.\n");
  6954. goto exitTest;
  6955. }
  6956. result = test_105();
  6957. if (result == TC_FAIL) {
  6958. /* terminate test */
  6959. TC_ERROR("HMAC test #{test_number} failed.\n");
  6960. goto exitTest;
  6961. }
  6962. result = test_106();
  6963. if (result == TC_FAIL) {
  6964. /* terminate test */
  6965. TC_ERROR("HMAC test #{test_number} failed.\n");
  6966. goto exitTest;
  6967. }
  6968. result = test_107();
  6969. if (result == TC_FAIL) {
  6970. /* terminate test */
  6971. TC_ERROR("HMAC test #{test_number} failed.\n");
  6972. goto exitTest;
  6973. }
  6974. result = test_108();
  6975. if (result == TC_FAIL) {
  6976. /* terminate test */
  6977. TC_ERROR("HMAC test #{test_number} failed.\n");
  6978. goto exitTest;
  6979. }
  6980. result = test_109();
  6981. if (result == TC_FAIL) {
  6982. /* terminate test */
  6983. TC_ERROR("HMAC test #{test_number} failed.\n");
  6984. goto exitTest;
  6985. }
  6986. result = test_110();
  6987. if (result == TC_FAIL) {
  6988. /* terminate test */
  6989. TC_ERROR("HMAC test #{test_number} failed.\n");
  6990. goto exitTest;
  6991. }
  6992. result = test_111();
  6993. if (result == TC_FAIL) {
  6994. /* terminate test */
  6995. TC_ERROR("HMAC test #{test_number} failed.\n");
  6996. goto exitTest;
  6997. }
  6998. result = test_112();
  6999. if (result == TC_FAIL) {
  7000. /* terminate test */
  7001. TC_ERROR("HMAC test #{test_number} failed.\n");
  7002. goto exitTest;
  7003. }
  7004. result = test_113();
  7005. if (result == TC_FAIL) {
  7006. /* terminate test */
  7007. TC_ERROR("HMAC test #{test_number} failed.\n");
  7008. goto exitTest;
  7009. }
  7010. result = test_114();
  7011. if (result == TC_FAIL) {
  7012. /* terminate test */
  7013. TC_ERROR("HMAC test #{test_number} failed.\n");
  7014. goto exitTest;
  7015. }
  7016. result = test_115();
  7017. if (result == TC_FAIL) {
  7018. /* terminate test */
  7019. TC_ERROR("HMAC test #{test_number} failed.\n");
  7020. goto exitTest;
  7021. }
  7022. result = test_116();
  7023. if (result == TC_FAIL) {
  7024. /* terminate test */
  7025. TC_ERROR("HMAC test #{test_number} failed.\n");
  7026. goto exitTest;
  7027. }
  7028. result = test_117();
  7029. if (result == TC_FAIL) {
  7030. /* terminate test */
  7031. TC_ERROR("HMAC test #{test_number} failed.\n");
  7032. goto exitTest;
  7033. }
  7034. result = test_118();
  7035. if (result == TC_FAIL) {
  7036. /* terminate test */
  7037. TC_ERROR("HMAC test #{test_number} failed.\n");
  7038. goto exitTest;
  7039. }
  7040. result = test_119();
  7041. if (result == TC_FAIL) {
  7042. /* terminate test */
  7043. TC_ERROR("HMAC test #{test_number} failed.\n");
  7044. goto exitTest;
  7045. }
  7046. result = test_120();
  7047. if (result == TC_FAIL) {
  7048. /* terminate test */
  7049. TC_ERROR("HMAC test #{test_number} failed.\n");
  7050. goto exitTest;
  7051. }
  7052. TC_PRINT("All HMAC-PRNG tests succeeded!\n");
  7053. exitTest:
  7054. TC_END_RESULT(result);
  7055. TC_END_REPORT(result);
  7056. }