From e8dbc7a568af7c2178fc2a6f6a5b46f0694031cb Mon Sep 17 00:00:00 2001 From: seshanthS Date: Tue, 21 Jan 2025 12:18:42 +0530 Subject: [PATCH 1/6] add rsa dsc instances --- circuits/circuits/dsc/dsc.circom | 109 +- .../dsc/instances/dsc_rsa_sha1_3_4096.circom | 5 + .../instances/dsc_rsa_sha1_65537_4096.circom | 2 +- .../instances/dsc_rsa_sha256_3_4096.circom | 5 + .../dsc_rsa_sha256_65537_4096.circom | 2 +- .../dsc_rsa_sha384_65537_4096.circom | 5 + .../dsc_rsa_sha512_65537_4096.circom | 5 + .../utils/crypto/utils/WordToBytes.circom | 47 + .../utils/passport/signatureAlgorithm.circom | 26 + circuits/tests/dsc.test.ts | 90 - common/pubkeys/serialized_csca_tree.json | 1467 +---------------- common/src/constants/constants.ts | 3 + common/src/constants/mockCertificates.ts | 312 +++- common/src/constants/skiPem.ts | 10 + .../sha1_rsa_3_4096/mock_csca.pem | 31 + .../sha256_rsa_3_4096/mock_csca.crt | 58 +- .../sha256_rsa_3_4096/mock_csca.key | 100 +- .../sha256_rsa_3_4096/mock_dsc.crt | 60 +- .../sha384_rsa_65537_4096/mock_csca.pem | 31 + .../sha512_rsa_65537_4096/mock_csca.pem | 31 + common/src/utils/csca.ts | 171 +- common/src/utils/pubkeyTree.ts | 4 +- registry/src/csca/build_csca_merkle_tree.ts | 6 +- 23 files changed, 776 insertions(+), 1804 deletions(-) create mode 100644 circuits/circuits/dsc/instances/dsc_rsa_sha1_3_4096.circom create mode 100644 circuits/circuits/dsc/instances/dsc_rsa_sha256_3_4096.circom create mode 100644 circuits/circuits/dsc/instances/dsc_rsa_sha384_65537_4096.circom create mode 100644 circuits/circuits/dsc/instances/dsc_rsa_sha512_65537_4096.circom create mode 100644 circuits/circuits/utils/crypto/utils/WordToBytes.circom delete mode 100644 circuits/tests/dsc.test.ts create mode 100644 common/src/mock_certificates/sha1_rsa_3_4096/mock_csca.pem create mode 100644 common/src/mock_certificates/sha384_rsa_65537_4096/mock_csca.pem create mode 100644 common/src/mock_certificates/sha512_rsa_65537_4096/mock_csca.pem diff --git a/circuits/circuits/dsc/dsc.circom b/circuits/circuits/dsc/dsc.circom index b0744ef2..57445f9e 100644 --- a/circuits/circuits/dsc/dsc.circom +++ b/circuits/circuits/dsc/dsc.circom @@ -10,25 +10,29 @@ include "../utils/passport/customHashers.circom"; include "../utils/passport/signatureAlgorithm.circom"; include "../utils/passport/signatureVerifier.circom"; include "@zk-email/circuits/utils/bytes.circom"; +include "../utils/crypto/utils/WordToBytes.circom"; +template DSC(signatureAlgorithm, n_dsc, k_dsc, n_csca, k_csca, max_cert_bytes, maxPubkeyBytesLength, nLevels) { -template DSC(signatureAlgorithm, n_dsc, k_dsc, n_csca, k_csca, max_cert_bytes, dscPubkeyBytesLength, nLevels) { + assert(n_dsc * k_dsc == maxPubkeyBytesLength * 8); // variables verification assert(max_cert_bytes % 64 == 0); - assert(n_csca * k_csca > max_cert_bytes); + // assert(n_csca * k_csca > max_cert_bytes); assert(n_csca <= (255 \ 2)); var hashLength = getHashLength(signatureAlgorithm); var kLengthFactor = getKLengthFactor(signatureAlgorithm); var kScaled = k_csca * kLengthFactor; + var k_dsc_scaled = k_dsc * kLengthFactor; signal input raw_dsc_cert[max_cert_bytes]; signal input raw_dsc_cert_padded_bytes; signal input csca_pubKey[kScaled]; signal input signature[kScaled]; - signal input dsc_pubKey[k_dsc]; + signal input dsc_pubKey[k_dsc_scaled]; signal input dsc_pubKey_offset; + signal input dsc_pubkey_length_bytes; signal input secret; signal input merkle_root; @@ -47,18 +51,95 @@ template DSC(signatureAlgorithm, n_dsc, k_dsc, n_csca, k_csca, max_cert_bytes, d SignatureVerifier(signatureAlgorithm, n_csca, k_csca)(hashedCertificate, csca_pubKey, signature); - // verify DSC csca_pubKey - component shiftLeft = VarShiftLeft(max_cert_bytes, dscPubkeyBytesLength); // use select subarray for dscPubKey variable length - shiftLeft.in <== raw_dsc_cert; - shiftLeft.shift <== dsc_pubKey_offset; - component spbt_1 = SplitBytesToWords(dscPubkeyBytesLength, n_dsc, k_dsc); - spbt_1.in <== shiftLeft.out; - for (var i = 0; i < k_dsc; i++) { - dsc_pubKey[i] === spbt_1.out[i]; + signal pubkey_extracted_2[maxPubkeyBytesLength + 1]; + signal raw_dsc_cert_reversed[max_cert_bytes]; + for (var i=0; i { - describe(`DSC chain certificate - ${hashFunction.toUpperCase()} ${sigAlg.toUpperCase()}`, function () { - this.timeout(0); // Disable timeout - let circuit; - - // Mock certificates based on signature algorithm and hash function - let dscCertPem; - let cscaCertPem; - const salt = '0'; - - switch (`${sigAlg}_${hashFunction}`) { - case 'rsa_sha256': - dscCertPem = mock_dsc_sha256_rsa_4096; - cscaCertPem = mock_csca_sha256_rsa_4096; - break; - case 'rsa_sha1': - dscCertPem = mock_dsc_sha1_rsa_4096; - cscaCertPem = mock_csca_sha1_rsa_4096; - break; - case 'rsapss_sha256': - dscCertPem = mock_dsc_sha256_rsapss_4096; - cscaCertPem = mock_csca_sha256_rsapss_4096; - break; - default: - throw new Error('Unsupported signature algorithm and hash function combination'); - } - - const inputs = generateCircuitInputsDSC( - BigInt(salt).toString(), - dscCertPem, - max_cert_bytes, - true - ); - - before(async () => { - circuit = await wasm_tester( - path.join( - __dirname, - `../circuits/dsc/instances/${getCircuitName('dsc', sigAlg, hashFunction, domainParameter, keyLength)}.circom` - ), - { - include: [ - 'node_modules', - './node_modules/@zk-kit/binary-merkle-root.circom/src', - './node_modules/circomlib/circuits', - ], - } - ); - }); - - it('should compute the correct output', async () => { - const witness = await circuit.calculateWitness(inputs.inputs, true); - const blinded_dsc_commitment = (await circuit.getOutput(witness, ['blinded_dsc_commitment'])) - .blinded_dsc_commitment; - console.log('\x1b[34m%s\x1b[0m', 'blinded_dsc_commitment: ', blinded_dsc_commitment); - const merkle_root = (await circuit.getOutput(witness, ['merkle_root'])).merkle_root; - console.log('\x1b[34m%s\x1b[0m', 'merkle_root: ', merkle_root); - expect(blinded_dsc_commitment).to.be.not.null; - }); - }); -}); diff --git a/common/pubkeys/serialized_csca_tree.json b/common/pubkeys/serialized_csca_tree.json index b361983c..00d4a37a 100644 --- a/common/pubkeys/serialized_csca_tree.json +++ b/common/pubkeys/serialized_csca_tree.json @@ -1,1466 +1 @@ -[ - [ - "7545513665204778934119579937931337658034843334245089303733370588230123155016", - "19585917515800360817881561079463956928885330676318873113818737600568710039879", - "9765660942218343950861963466096481739694594820162128292865481912189376943231", - "926742712462849709662698440169391170468371485712380830395485755398570267511", - "20823790633066962159762767257071309884061556518147106793845560864937072027058", - "11138977103314849062185150683360632466650767494989831991107584033224070757169", - "4266736524921843192806375844771519440830775051964898341400028593663517504103", - "9765660942218343950861963466096481739694594820162128292865481912189376943231", - "926742712462849709662698440169391170468371485712380830395485755398570267511", - "20823790633066962159762767257071309884061556518147106793845560864937072027058", - "10758342370258994902973924498271763657264440740983762804549073950817004310048", - "10527598776820142330627180831925014598922360422140869195914844911499078855957", - "16138733977084662531533702170218033448869985197730328788614520712953469557164", - "15434346572973455077666533703377942564951632392768372571926984107385732383247", - "6064072848892734739825173600686111624462724540445225119098337725978251588622", - "1237417001024586291861611186489669176090872746723563256005790119457209738409", - "5020346731871096933960209893528188538946781938995422511875278230663865559674", - "3657513404517270973899741111041197021595111471263993304958554732703420643089", - "15434346572973455077666533703377942564951632392768372571926984107385732383247", - "6064072848892734739825173600686111624462724540445225119098337725978251588622", - "1237417001024586291861611186489669176090872746723563256005790119457209738409", - "6409804201479915779847342726301864875073457932807495705932934220743481384212", - "15950128514242567078618070168118709261591503102062685676745963647468620390191", - "6409804201479915779847342726301864875073457932807495705932934220743481384212", - "15950128514242567078618070168118709261591503102062685676745963647468620390191", - "1768611527163259662335037001842361103707430630823777549248495333388570436131", - "13343351410920743449291972260891276885234460144340441314908456044982814077774", - "15549141277677387172209441572872330225965420758075450560620324149917093523811", - "4897502275158978322828068505045583447273375128802717246997184303345296231057", - "15351953542011010793580128414673353431550840598539779418061379480276710674105", - "15351953542011010793580128414673353431550840598539779418061379480276710674105", - "12969222133060409072206103974158916680107806063669810328356902011201955925648", - "13875836835391599822127355278814509682851830085787338085318856800279934472724", - "6275541422255182056450006664308396679160159969898420367128043976527500351600", - "16046938330608339247716039290029033717843387433793891346726153257003796783854", - "1777591431970340000287147368810487196049877163880967624390712715178045073319", - "13875836835391599822127355278814509682851830085787338085318856800279934472724", - "6275541422255182056450006664308396679160159969898420367128043976527500351600", - "760496886461128300484752740052883353982606719416869583865550880610976295632", - "6943221579602743797982517064651342662484906698096420197120570141838851120267", - "12770728713932516808737943449600529810294790017781390009163427193726528364958", - "3875617379012003404154714307489161077134802309119229689262899852949161178087", - "3899311379605633165705785284537258749901869467765414694089543000885711618614", - "12770728713932516808737943449600529810294790017781390009163427193726528364958", - "3875617379012003404154714307489161077134802309119229689262899852949161178087", - "5008770122203555064158571549260616528507467639397651663781865493465364347657", - "2094335335123512346920253719414278751576174816493571421798094366783997484650", - "5008770122203555064158571549260616528507467639397651663781865493465364347657", - "17242422918123154688053153449885436764498389667521901119083514726219321226558", - "19569242828296378604062816188593042610867360054283688388198232459970836352270", - "2711495691562323483287564813839775988914295887300361478408732552930236767607", - "19569242828296378604062816188593042610867360054283688388198232459970836352270", - "2711495691562323483287564813839775988914295887300361478408732552930236767607", - "4717074991566350442296205895522241279514871627508224000562967691249197202287", - "20824486663040893916492978123182789435039618540889656718868409834095383546721", - "295287476871927943313586244030210736637257312119008178514474209194205476044", - "20824486663040893916492978123182789435039618540889656718868409834095383546721", - "295287476871927943313586244030210736637257312119008178514474209194205476044", - "5785208753645037544560594604597966536026655646978682733279923416322788942804", - "12622447269936186721327456865589673140242313135550206402224189387137424403293", - "7017990230101942922046932799238262874911489184467579816277845836739784806324", - "19841806050269951191223750609047749163829069441644956600756382989298611619163", - "7949066247702004569754056081041906609455496159054984574104729447791145397544", - "4099422096204847461550569154712881183468662583337874014378233101295116651238", - "7017990230101942922046932799238262874911489184467579816277845836739784806324", - "10094451256185324463938542812874090292338553041273705886508299668732338031950", - "19841806050269951191223750609047749163829069441644956600756382989298611619163", - "10084814829272923323289009175488200442576520131057456863925963580559201557549", - "8273998485425135363543067959447331147023625151384775651035050595795583054934", - "10482530158386482902842800129718049296599067740726194117119162504076602493277", - "21108409944333648157154559478842008802098282385756176018528776111079749772261", - "17961426625527395470170490420374506407393880262363740901226738333796157487523", - "10482530158386482902842800129718049296599067740726194117119162504076602493277", - "21108409944333648157154559478842008802098282385756176018528776111079749772261", - "15116402110432078055146752021879232331766409670564868314300045810344023725988", - "18297565077601301121968803420909787999567680660131631867519061973110803920724", - "246017008040700840651675025578057843454031025232405202947595612021759107206", - "17217731040241981472457431014892782292300981485753420457818326542748238917776", - "18297565077601301121968803420909787999567680660131631867519061973110803920724", - "246017008040700840651675025578057843454031025232405202947595612021759107206", - "4539597987538143693712569915957037385385966498438068697790906674062383819364", - "17217731040241981472457431014892782292300981485753420457818326542748238917776", - "13599136330051204937660632212223902336062675446221140437986682963181435570232", - "7570909737956673485546679119196908397396800186406942183165769008371389009829", - "18968340747680237301886542478716130021561751137858906182504978003254163567787", - "9761904222330241711439825921000566295346550608809343644252337218588990520702", - "21340695348662868415286190018646396345444495289139377733553661356735872405739", - "18878065040735449907024089176417186463591600871110326907403879557293677224470", - "13599136330051204937660632212223902336062675446221140437986682963181435570232", - "7570909737956673485546679119196908397396800186406942183165769008371389009829", - "12397263246517322729476408521488966062840893854371683024854796754164420929057", - "2860878526347838014476384053846005538671911964382195947732997419039477050139", - "4352253485726936037599445044774150816007324915229731946433928073125235988192", - "18968340747680237301886542478716130021561751137858906182504978003254163567787", - "9761904222330241711439825921000566295346550608809343644252337218588990520702", - "1333646719105530579488570539548663994726629608887761233619309263694142978550", - "13128735710199531285310902568474005324715330482917419484972814942725433723987", - "9034074759514178946411189547844656024629274521416157134830732661164478063746", - "10995935858940238874038348262168932605353052163827018600181294929053242784414", - "11044474718248749374089171092152309996122404511223491139111311583323522074191", - "10995935858940238874038348262168932605353052163827018600181294929053242784414", - "11044474718248749374089171092152309996122404511223491139111311583323522074191", - "17575294883585821698706159563354735829387129547855866256538793306432332376398", - "4244889878152775931731392924983066509481812837709233742183358630871249918203", - "19052069645349967969037041186716386223062972287992649495946542374871875145517", - "16303259261428386797549765573062444119142258834891297802294293378556802530681", - "14932008654096761798565103480930001039780661747345319616066831775345017618224", - "7456416410901867572528365454686325575726166794230807950172037673422212348410", - "1761380860632394307923341341502751500152800598340198554914094532068653248564", - "9319547832118156914162835917629926184130951688224186661787930742684367556191", - "14135519850017336935221971315529629556224784741042204451839364338267213123382", - "1761380860632394307923341341502751500152800598340198554914094532068653248564", - "9319547832118156914162835917629926184130951688224186661787930742684367556191", - "13443959010611476580635370505406840895849752794355780586971696096249072081828", - "748242504546048031763303447433125218245891652221248512945958633418424197744", - "6847035271131215384224084702748199403431692305386410965388937248152848714984", - "5459356157764074777126451457893732400671263988274267484631443876110456759100", - "6847035271131215384224084702748199403431692305386410965388937248152848714984", - "5459356157764074777126451457893732400671263988274267484631443876110456759100", - "13609793155856329945061146720676570511433630159757604106977603919055081562051", - "5459356157764074777126451457893732400671263988274267484631443876110456759100", - "748242504546048031763303447433125218245891652221248512945958633418424197744", - "6847035271131215384224084702748199403431692305386410965388937248152848714984", - "8683596458518965205105630419726249690338640772370279961592164315962472993831", - "8243122541545775432634349652641858600033039702562011633143136291459904148635", - "8243122541545775432634349652641858600033039702562011633143136291459904148635", - "15200076125964164997915247243678824082207774924943152057908156277284752623299", - "11130794590376767265093946348794823080370676666510155710852037965055115543867", - "20578762386496183343655436429385786214502170723560010762397878950088994494577", - "20578762386496183343655436429385786214502170723560010762397878950088994494577", - "9140409583038829003132910079638410788016554172772221893979311217986734151516", - "2475186346601644222680416951850997480798225996886346673374824694378098371554", - "2475186346601644222680416951850997480798225996886346673374824694378098371554", - "17631647791982642734352175184436927698800269130591642381438200125261663611504", - "11754281877121280089697577947748442218242939674592522293272390438520194835742", - "10720892039938581299556212432912637930330408813991319597511529294574677114426", - "14903647747224825841372374123884728533333731887832195884927387659082961665060", - "7838763884896886040987570208220497725156733176082557316654239393507506602524", - "9140409583038829003132910079638410788016554172772221893979311217986734151516", - "2475186346601644222680416951850997480798225996886346673374824694378098371554", - "17631647791982642734352175184436927698800269130591642381438200125261663611504", - "1530289048398066655574087861935611840874150582543500407956083126001278758264", - "1530289048398066655574087861935611840874150582543500407956083126001278758264", - "16136056940366399523435148014876467808856102155455908562222530491709516028147", - "16376194709471000311648429869188151295241808464211150100799298953600058529849", - "15793766401507815044103474338124896664059763206719794269792944102468626700233", - "2982174036355567780333061510725391337887981766309558828247307731047705843798", - "14030082703988303971232666609091671314095464063858317702865842051075915730334", - "8919773119195608740047341615127889316170471718810585196984957847849075533529", - "14030082703988303971232666609091671314095464063858317702865842051075915730334", - "15291116065258154111409027765298168104556676059569662278259529571622596764857", - "6875401864395966163086302157078759524588955677043449349219026762955903914206", - "5095931690722060786318665874006098481795321570507488299638491217059000248848", - "9380284601646238029939121673448226840826564473678361999377470283009586303083", - "2743397452050478411017269067930224517450337309891471738060967996801797144768", - "9380284601646238029939121673448226840826564473678361999377470283009586303083", - "15291116065258154111409027765298168104556676059569662278259529571622596764857", - "804036418260069472123268953851829016456646611641096968121272390377609901924", - "9873572286640548058085538409892808976430458576418083750656661779175873424261", - "5095931690722060786318665874006098481795321570507488299638491217059000248848", - "20470775335873221199373651227532410144014713578523919781166528630182925453446", - "1170685286341059352326927448875351524097517437747738201876949516241697840038", - "9295999385463191276176781035461531188797273683652144958566177563247087683861", - "16428829498569941559417418645501012433085771838958036962530487938389877741162", - "1170685286341059352326927448875351524097517437747738201876949516241697840038", - "9295999385463191276176781035461531188797273683652144958566177563247087683861", - "8552226814177781837201473595362586720286315554889694080217269726053421748718", - "1819862310740274731869533573887623069322780260431237880381117766305092022341", - "5211739273564141017230187562348980714006753203838499546143338957012181339326", - "21003303554927099168037815632285306264172578941372047536946358610348372877175", - "6666118803111656791409768305838898573330958900158460098627035845882296763822", - "18711655788055484135860952926320463711485833200044891994538447395940789649611", - "2283864355697245672767850851697988502827516822770602840729561903099639539321", - "21621294160165445140090678961497679782321912856231392535175646140774919324539", - "13494059916404350447381273436985999956602873304987168590093032636551660723231", - "18605462664483663601442969032728347514971120868133290370471343345284109885107", - "19666066119632595452162581424320848471786165329993739257085503275244157900906", - "3438001309498655844725700770655839439037334616140994763339893179644277717385", - "4657588831297540580761825043089906062736951006857893289321311017586696975681", - "16748383274471189422166535106537869113814581956070997597483909959547658598524", - "13103114974306702000902207179478099850294067104168067226680921215987548394709", - "1938677203812984586292416098261578783715997244578190173548548555163996612138", - "1712856054382561256876009280520146404040173405115930983706993670655112549673", - "16748383274471189422166535106537869113814581956070997597483909959547658598524", - "13103114974306702000902207179478099850294067104168067226680921215987548394709", - "6743117350305657733750766872094179950919206135990613668778890659570856843463", - "1712856054382561256876009280520146404040173405115930983706993670655112549673", - "20473354391265371100796759353610455712373085548312105123240749059790955977397", - "17325005331498606686523060308502041998874249065365377291048515477038398642504", - "581583400595965954448518734239211477782535397806368789691005112239401996782", - "18708875018819765443552572175772423195874740794417331529732563170186026562689", - "14814532008720180899410894797928748104806408726679018165692550951548094273901", - "12304557403652564317405325005801735215375768131634737900381202211472854215302", - "15866392312479117462644923696210142708054503327678476876754260538038212778388", - "14663842244367073508740698122140162207105114154731500716147633126910154451659", - "14814532008720180899410894797928748104806408726679018165692550951548094273901", - "7013540700974558820462607698396750849394976239252107247637511394084098704192", - "4051436449862481433565845699031860717747846263610878586747286777075863978617", - "15866392312479117462644923696210142708054503327678476876754260538038212778388", - "14663842244367073508740698122140162207105114154731500716147633126910154451659", - "3300997195062734931445267956226521235811697507277645506051435709475147953622", - "17681219118469031504275843962216575889405814601918857029882925383476187560517", - "221579138514265075965801481003636088305707834706196688540398147777465836446", - "3300997195062734931445267956226521235811697507277645506051435709475147953622", - "17681219118469031504275843962216575889405814601918857029882925383476187560517", - "15454401903742554462612857131739227720656116757069879307159611546474650083059", - "221579138514265075965801481003636088305707834706196688540398147777465836446", - "17690257276606134502150745117877085180586870358214997894856148424251982569953", - "14028882947752968516140358422785274838006253385433251105799327186772468459943", - "16367561808119423461759835765335744200194010661712433395500358865835104416736", - "19038170307785075908771874025720818601267600479253706987062726896051368889758", - "17690257276606134502150745117877085180586870358214997894856148424251982569953", - "14234865987232099770353669057958910208353037531762075918233528402000261487629", - "18017763953163230484787496619098275100697725101397445733457273824832974093770", - "7317982926649007812104755989986892347850909582228978673593667327465732456669", - "11850860322545159240132628656206925609343109228721869992918966076745597525246", - "18017763953163230484787496619098275100697725101397445733457273824832974093770", - "13256421313147725243395827115140384499105813013022855127885819413701885999283", - "2634396206482502764594423962429425719111631515576017920143439971723713144631", - "11850860322545159240132628656206925609343109228721869992918966076745597525246", - "8037903959367167256769130883870176483688860685264353361922472848979131718165", - "13764391857417159273003395886929163780103760207039181171574972648099033175865", - "13299827233248581777172487328404882732139488366769580639143531379825292904589", - "2733662062406213819716176871158957276807195480146594182421060227039865478080", - "5509367124469571124317738686567335091193489133971054459773190929467634765622", - "2733662062406213819716176871158957276807195480146594182421060227039865478080", - "8961414565926544099205356497581288212625809041394116526575913229479703555449", - "20819271248337129619498144731441800909275898285878362161169915669683474918227", - "2006850180463826223852282260898508367602987405462566534907215784204463585303", - "9792842929514694082593276709767883876982349062013750673044701158232405982121", - "2006850180463826223852282260898508367602987405462566534907215784204463585303", - "9792842929514694082593276709767883876982349062013750673044701158232405982121", - "12232528025451428302803545986690863470045450983339511131031578015773334973023", - "9132687731383167642675732303118110886700485483620950075155177074442879963350", - "2641846462881188748796225779249406327677092487689305542395461496228421386373", - "19613125415063238747119105266390028295012583030017421029797443106800921231547", - "16676737333911287697702542044117233404972541552113319846622948677886641766467", - "9132687731383167642675732303118110886700485483620950075155177074442879963350", - "4836561138591069314581809200885585106054248491118940999011213532147044732404", - "9100687758133421694057684467069779101967156914794244151324845393952456861346", - "403406968023485795511687748010577913056365396048942436809136003862954225252", - "9100687758133421694057684467069779101967156914794244151324845393952456861346", - "13764391857417159273003395886929163780103760207039181171574972648099033175865", - "12770728713932516808737943449600529810294790017781390009163427193726528364958", - "10084814829272923323289009175488200442576520131057456863925963580559201557549", - "17575294883585821698706159563354735829387129547855866256538793306432332376398", - "10995935858940238874038348262168932605353052163827018600181294929053242784414", - "11044474718248749374089171092152309996122404511223491139111311583323522074191", - "16428829498569941559417418645501012433085771838958036962530487938389877741162", - "1170685286341059352326927448875351524097517437747738201876949516241697840038", - "9319547832118156914162835917629926184130951688224186661787930742684367556191", - "4836561138591069314581809200885585106054248491118940999011213532147044732404", - "2641846462881188748796225779249406327677092487689305542395461496228421386373", - "19613125415063238747119105266390028295012583030017421029797443106800921231547", - "14814532008720180899410894797928748104806408726679018165692550951548094273901", - "7013540700974558820462607698396750849394976239252107247637511394084098704192", - "8384062539908915944022947800178840181050762969622974725255522072093500158767", - "3494797244908300460305378858370473489306692924748418454077559598659211986306", - "1777591431970340000287147368810487196049877163880967624390712715178045073319", - "16046938330608339247716039290029033717843387433793891346726153257003796783854", - "6943221579602743797982517064651342662484906698096420197120570141838851120267", - "16748383274471189422166535106537869113814581956070997597483909959547658598524", - "1333646719105530579488570539548663994726629608887761233619309263694142978550", - "3875617379012003404154714307489161077134802309119229689262899852949161178087", - "6847035271131215384224084702748199403431692305386410965388937248152848714984", - "14744567337336193894294580681889120364531710302323252899181650040769110924552", - "15434346572973455077666533703377942564951632392768372571926984107385732383247", - "5020346731871096933960209893528188538946781938995422511875278230663865559674", - "3657513404517270973899741111041197021595111471263993304958554732703420643089", - "403406968023485795511687748010577913056365396048942436809136003862954225252", - "5095931690722060786318665874006098481795321570507488299638491217059000248848", - "882264742732300525282055972057127387292645391728148827563533775212806682105", - "2743397452050478411017269067930224517450337309891471738060967996801797144768", - "15291116065258154111409027765298168104556676059569662278259529571622596764857", - "804036418260069472123268953851829016456646611641096968121272390377609901924", - "5844364026616244131283595465105760283508601723675112565531256006878681193396", - "9873572286640548058085538409892808976430458576418083750656661779175873424261", - "9792842929514694082593276709767883876982349062013750673044701158232405982121", - "7414844280715453303881033992807659157223447055173254736786963917653102498959", - "21108409944333648157154559478842008802098282385756176018528776111079749772261", - "3742591250530334674877473560846678731472964363591618541737848896403172629698", - "8425397865477671225176655542535046946999157376164237502993432608601946106895", - "8811188635063054096479459519079819415698086355667008655513961733231728343207", - "8243122541545775432634349652641858600033039702562011633143136291459904148635", - "9295999385463191276176781035461531188797273683652144958566177563247087683861", - "14030082703988303971232666609091671314095464063858317702865842051075915730334", - "5002410368449115881500339697696503965900281914341125463866991956460269402234", - "1768216918003348522472312194683727294629858749445970701750333864972223351849", - "13297848246062435343909829464804616166875240061719053260441840491668576272403", - "20819271248337129619498144731441800909275898285878362161169915669683474918227", - "6556693601992995719622087340125141698229691211178443781141444536216197842967", - "18460722210944486605037463862182989660686349567958871663132766642844916834717", - "1237417001024586291861611186489669176090872746723563256005790119457209738409", - "15866392312479117462644923696210142708054503327678476876754260538038212778388", - "14782435175471784172510622373998992455377089048331797201555379024109452363621", - "8683596458518965205105630419726249690338640772370279961592164315962472993831", - "21726146673740323220900872527757782084104678085773200029322260308882040907056", - "295287476871927943313586244030210736637257312119008178514474209194205476044", - "5509367124469571124317738686567335091193489133971054459773190929467634765622", - "2733662062406213819716176871158957276807195480146594182421060227039865478080", - "6177809281448024023402995215371492617968707601844198597737617137801294941868", - "15137604245835758995999805425459824278317735474662041375329277223315203016990", - "12969222133060409072206103974158916680107806063669810328356902011201955925648", - "14663842244367073508740698122140162207105114154731500716147633126910154451659", - "5008770122203555064158571549260616528507467639397651663781865493465364347657", - "17508201928974511571005573827054461353711612525195214982011840169845089150448", - "1712856054382561256876009280520146404040173405115930983706993670655112549673", - "7017990230101942922046932799238262874911489184467579816277845836739784806324", - "560238348327812164910399733286031507613805383142047184365445888677643974823", - "6064072848892734739825173600686111624462724540445225119098337725978251588622", - "20473354391265371100796759353610455712373085548312105123240749059790955977397", - "9100687758133421694057684467069779101967156914794244151324845393952456861346", - "19569242828296378604062816188593042610867360054283688388198232459970836352270", - "2711495691562323483287564813839775988914295887300361478408732552930236767607", - "19656831033694833239912207790670456760224437243904397785346314495419974538457", - "246017008040700840651675025578057843454031025232405202947595612021759107206", - "9132687731383167642675732303118110886700485483620950075155177074442879963350", - "17631647791982642734352175184436927698800269130591642381438200125261663611504", - "15950128514242567078618070168118709261591503102062685676745963647468620390191", - "3438001309498655844725700770655839439037334616140994763339893179644277717385", - "20578762386496183343655436429385786214502170723560010762397878950088994494577", - "15351953542011010793580128414673353431550840598539779418061379480276710674105", - "19201682783551485583038872553543602114066313754681934256939507949353212818240", - "2634396206482502764594423962429425719111631515576017920143439971723713144631", - "16208605384154008021838451543122153409010372137069331353708419489592288464258", - "8273998485425135363543067959447331147023625151384775651035050595795583054934", - "18297565077601301121968803420909787999567680660131631867519061973110803920724", - "19777524202697558032910183884161018338429578966070241763715789133879529233748", - "4657588831297540580761825043089906062736951006857893289321311017586696975681", - "5043219963983785615642200211458142932602051386962779979530853680229678729250", - "1758469570873479859654848618390853130652834643685603268682705348361999935622", - "221579138514265075965801481003636088305707834706196688540398147777465836446", - "14863197331234981197564870097102941283436248045424027191515289897039004816056", - "748242504546048031763303447433125218245891652221248512945958633418424197744", - "2475186346601644222680416951850997480798225996886346673374824694378098371554", - "20823790633066962159762767257071309884061556518147106793845560864937072027058", - "4559891820758930973641609834061124429608343056135452005192199753109509837904", - "6275541422255182056450006664308396679160159969898420367128043976527500351600", - "17934932161127322668904071953728883624170338217697472030241732386938838637920", - "13875836835391599822127355278814509682851830085787338085318856800279934472724", - "3451109862994643648688440784951652442136026374861510414549619598290573157426", - "2440349363078734022847909594245962229017282317516742138917409303830541476560", - "19038170307785075908771874025720818601267600479253706987062726896051368889758", - "17690257276606134502150745117877085180586870358214997894856148424251982569953", - "5211739273564141017230187562348980714006753203838499546143338957012181339326", - "10720892039938581299556212432912637930330408813991319597511529294574677114426", - "9140409583038829003132910079638410788016554172772221893979311217986734151516", - "926742712462849709662698440169391170468371485712380830395485755398570267511", - "10482530158386482902842800129718049296599067740726194117119162504076602493277", - "17830626286252994358021517730187459911437127362195413138642174981503420226897", - "4266736524921843192806375844771519440830775051964898341400028593663517504103", - "7802341166893412118154653065923227214372634853803472887096760799252665673436", - "9765660942218343950861963466096481739694594820162128292865481912189376943231", - "17961426625527395470170490420374506407393880262363740901226738333796157487523", - "18837695853267906668018794451596360585592472890613988691006516476125380233270", - "14903647747224825841372374123884728533333731887832195884927387659082961665060", - "11754281877121280089697577947748442218242939674592522293272390438520194835742", - "1480133563549178442753614164920808594391633250872284715688231726449945938993", - "1768611527163259662335037001842361103707430630823777549248495333388570436131", - "13599136330051204937660632212223902336062675446221140437986682963181435570232", - "14135519850017336935221971315529629556224784741042204451839364338267213123382", - "6409804201479915779847342726301864875073457932807495705932934220743481384212", - "2094335335123512346920253719414278751576174816493571421798094366783997484650", - "4051436449862481433565845699031860717747846263610878586747286777075863978617", - "6666118803111656791409768305838898573330958900158460098627035845882296763822", - "21514262377244088249371067947474465713690135535574849762059383639118338292112", - "6683517783593343339348692344876397332598081400376387653080810411442127355336", - "15102076605742283425124324842017318219912681161720665390327337228304360038287", - "13599136330051204937660632212223902336062675446221140437986682963181435570232", - "2860878526347838014476384053846005538671911964382195947732997419039477050139", - "12397263246517322729476408521488966062840893854371683024854796754164420929057", - "17242422918123154688053153449885436764498389667521901119083514726219321226558", - "18708875018819765443552572175772423195874740794417331529732563170186026562689", - "3739680096675663097679166032209866403782564552088042042817858323092774345680", - "12517791173181809924390368638722485126198198467803444038079663678657941781229", - "14083955460283340099581981224537178400807166795382447529358365552937588159464", - "2982174036355567780333061510725391337887981766309558828247307731047705843798", - "15793766401507815044103474338124896664059763206719794269792944102468626700233", - "4352253485726936037599445044774150816007324915229731946433928073125235988192", - "13443959010611476580635370505406840895849752794355780586971696096249072081828", - "13128735710199531285310902568474005324715330482917419484972814942725433723987", - "13443959010611476580635370505406840895849752794355780586971696096249072081828", - "11850860322545159240132628656206925609343109228721869992918966076745597525246", - "3138064552983687106873013609879596382388385905584970412906962704788770126364", - "6540769617029109885796694709580876545736960191825862943951222466407417429888", - "3564296203435751413790668882227371254256123932305287650316219972985939163116", - "367649049536936808750291083058330318935467068855620422078450013873060777794", - "14866923877290766501844024405041107837055619398984009124628895337190631750037", - "3138064552983687106873013609879596382388385905584970412906962704788770126364", - "3899311379605633165705785284537258749901869467765414694089543000885711618614", - "19841806050269951191223750609047749163829069441644956600756382989298611619163", - "13609793155856329945061146720676570511433630159757604106977603919055081562051", - "5459356157764074777126451457893732400671263988274267484631443876110456759100", - "5095931690722060786318665874006098481795321570507488299638491217059000248848", - "2743397452050478411017269067930224517450337309891471738060967996801797144768", - "14127913900294160784966101869979466903955716423950321921365178663512474391974", - "11138977103314849062185150683360632466650767494989831991107584033224070757169", - "4057869120791333231764334075051333236988675750843298138540375068119954248807", - "13619200238846047752817122761482805227839886683919335698286252460262577182329", - "13128735710199531285310902568474005324715330482917419484972814942725433723987", - "4057869120791333231764334075051333236988675750843298138540375068119954248807", - "10482530158386482902842800129718049296599067740726194117119162504076602493277", - "15116402110432078055146752021879232331766409670564868314300045810344023725988", - "13064640458922805030841204349004756656227831120289033173617711540821029453990", - "4352253485726936037599445044774150816007324915229731946433928073125235988192", - "10094451256185324463938542812874090292338553041273705886508299668732338031950", - "12172166189307891302818618757060033061332629980026171197975991554774751476453", - "13256421313147725243395827115140384499105813013022855127885819413701885999283", - "1573667568002545327171486141307611553615853440410844691633690870863655293319", - "857473870857284264596881638672193466852131495786367461633039372200362215842", - "7624233529636712957260225243277217437029285776695456519227191366086024359294", - "7701577445884811644915171107920479557210910950646439988584215073012797073372", - "8522081595859024002605143731791503145633572840109807700765675834715814536942", - "13985957629276907683378717751630481564826907698663120998083131647495539320584", - "16136056940366399523435148014876467808856102155455908562222530491709516028147", - "9903040728368126595774478648223333601321958114333123056344777747131819311536", - "11850860322545159240132628656206925609343109228721869992918966076745597525246", - "20836394993632333178267425502999840897759529214605159702290926713946858720667", - "17821453092966044227297534562861299407119366979285835652170909177797536665597", - "17042742099181805739068031017013547212018937842625418102556479120051739566068", - "21429949120079165505315359431967053687487549244847776997176528865459654908558", - "5957443011889753555135936681872888891045070598365834308318500428514626535147", - "11138977103314849062185150683360632466650767494989831991107584033224070757169", - "5365729002668974569482726927224509899190941066947032676387945779281837917677", - "1546700280421666453711388780779510853511574762805881222636906597251317813974", - "21277607853750483499566974872383473298719714148247045093430156086409548187765", - "18594557186236757152739692658153687629812068422339688647257256262836714835702", - "4717074991566350442296205895522241279514871627508224000562967691249197202287", - "18316531767983289417995809826068757234240267564422464329427374602538214683959", - "14028882947752968516140358422785274838006253385433251105799327186772468459943", - "16021909971170328828934252943019419628560391036972314828345932551224568638470", - "4244889878152775931731392924983066509481812837709233742183358630871249918203", - "7456416410901867572528365454686325575726166794230807950172037673422212348410", - "21003303554927099168037815632285306264172578941372047536946358610348372877175", - "2711495691562323483287564813839775988914295887300361478408732552930236767607", - "3859281426803674628501369664467063890695820623561849556038355710838082808115", - "14814532008720180899410894797928748104806408726679018165692550951548094273901", - "4976599850581663342926141387010875949132066366354505477429501678692463644985", - "19676087152809156419842493943502179230952426429629012884637263946755477423004", - "12114414016653090409406221134564667850845499287069713235231061229461614867396", - "12232528025451428302803545986690863470045450983339511131031578015773334973023", - "14663842244367073508740698122140162207105114154731500716147633126910154451659", - "13599136330051204937660632212223902336062675446221140437986682963181435570232", - "21163394280557998571697330647864872028388232956862903089600467011608810708409", - "17325005331498606686523060308502041998874249065365377291048515477038398642504", - "17550827945668577790165231801226951492858622309347609933644598474684727962533", - "15950128514242567078618070168118709261591503102062685676745963647468620390191", - "9903040728368126595774478648223333601321958114333123056344777747131819311536", - "18711655788055484135860952926320463711485833200044891994538447395940789649611", - "16428829498569941559417418645501012433085771838958036962530487938389877741162", - "7570909737956673485546679119196908397396800186406942183165769008371389009829", - "16672768401548620695880571975143326624025608520963680880206152407746412481018", - "7177797141449348102252072434317801234665727548109244404793341197356578133440", - "18698874964731494012030224341478894927632990719020546489540371336994590532475", - "15193139609036993903985058593394392338047360851299948147559709929852496975231", - "9761904222330241711439825921000566295346550608809343644252337218588990520702", - "19483837651479321736302742289249370944897077639190358118567409670556418580958", - "9302253318678709320220824180958227581066631404025342032312081800403066408850", - "7060710356214345904169727589611074541770760626094723751422704595391569313623", - "12304557403652564317405325005801735215375768131634737900381202211472854215302", - "7009314085251158111809750383518669123393580401568741062754730433280706787183", - "3508485914680778327798782388148464883696571973519643631899250366201272125015", - "2283864355697245672767850851697988502827516822770602840729561903099639539321", - "19350020816886738246126301835194005513454931001609989413817735725019099368659", - "15866392312479117462644923696210142708054503327678476876754260538038212778388", - "14234865987232099770353669057958910208353037531762075918233528402000261487629", - "17934932161127322668904071953728883624170338217697472030241732386938838637920", - "4539597987538143693712569915957037385385966498438068697790906674062383819364", - "1170685286341059352326927448875351524097517437747738201876949516241697840038", - "6847035271131215384224084702748199403431692305386410965388937248152848714984", - "1777591431970340000287147368810487196049877163880967624390712715178045073319", - "18226655766844663132988970122229661231752571424447667758542810294663399940759", - "2364789189738914986238949881134463507774700359870226841539179693783222560334", - "17217731040241981472457431014892782292300981485753420457818326542748238917776", - "8552226814177781837201473595362586720286315554889694080217269726053421748718", - "2006850180463826223852282260898508367602987405462566534907215784204463585303", - "9792842929514694082593276709767883876982349062013750673044701158232405982121", - "11639213210002182447589915543342471270996105971970183505504663388847338819553", - "14744567337336193894294580681889120364531710302323252899181650040769110924552", - "9746116370353073579392113846809135533254667736880679137897314847608250417861", - "7948272832666027245094475239179406958318217144504241242156520748838392374437", - "9746116370353073579392113846809135533254667736880679137897314847608250417861", - "7948272832666027245094475239179406958318217144504241242156520748838392374437", - "12622447269936186721327456865589673140242313135550206402224189387137424403293", - "8425397865477671225176655542535046946999157376164237502993432608601946106895", - "19656831033694833239912207790670456760224437243904397785346314495419974538457", - "19950971209750256650428124886760343100788205392906978830444423756873330773871", - "14782435175471784172510622373998992455377089048331797201555379024109452363621", - "9100687758133421694057684467069779101967156914794244151324845393952456861346", - "5785208753645037544560594604597966536026655646978682733279923416322788942804", - "295287476871927943313586244030210736637257312119008178514474209194205476044", - "20824486663040893916492978123182789435039618540889656718868409834095383546721", - "20578762386496183343655436429385786214502170723560010762397878950088994494577", - "3899311379605633165705785284537258749901869467765414694089543000885711618614", - "17508201928974511571005573827054461353711612525195214982011840169845089150448", - "5008770122203555064158571549260616528507467639397651663781865493465364347657", - "8522081595859024002605143731791503145633572840109807700765675834715814536942", - "21726146673740323220900872527757782084104678085773200029322260308882040907056", - "16367561808119423461759835765335744200194010661712433395500358865835104416736", - "7624233529636712957260225243277217437029285776695456519227191366086024359294", - "857473870857284264596881638672193466852131495786367461633039372200362215842", - "13985957629276907683378717751630481564826907698663120998083131647495539320584", - "1530289048398066655574087861935611840874150582543500407956083126001278758264", - "8037903959367167256769130883870176483688860685264353361922472848979131718165", - "12101588765123482595247263890106766698718153799355148550822821714716885577044", - "9295999385463191276176781035461531188797273683652144958566177563247087683861", - "7701577445884811644915171107920479557210910950646439988584215073012797073372", - "20024906171954396923165244183469357190404524205780988170007189310403645813686", - "16551788798398168685581609395227493267550344840937528782604561422855100820111", - "8604568529290264588828050780698498293310498688464896629946556577424676849339", - "20578762386496183343655436429385786214502170723560010762397878950088994494577", - "20578762386496183343655436429385786214502170723560010762397878950088994494577", - "16676737333911287697702542044117233404972541552113319846622948677886641766467", - "8604568529290264588828050780698498293310498688464896629946556577424676849339", - "221579138514265075965801481003636088305707834706196688540398147777465836446", - "10527598776820142330627180831925014598922360422140869195914844911499078855957", - "20734308610592487113169757667242222112420104925970775271984424782741913190289", - "15351953542011010793580128414673353431550840598539779418061379480276710674105", - "19201682783551485583038872553543602114066313754681934256939507949353212818240", - "10219429240592164007579283290907650649439236137135526233263120027946178711823", - "11130794590376767265093946348794823080370676666510155710852037965055115543867", - "6858187439282460928294438746100083713898576826242912501712322172927350361818", - "16208605384154008021838451543122153409010372137069331353708419489592288464258", - "10995935858940238874038348262168932605353052163827018600181294929053242784414", - "11044474718248749374089171092152309996122404511223491139111311583323522074191", - "20734308610592487113169757667242222112420104925970775271984424782741913190289", - "4598522599722636038915737956257769917494518864237921012015433340555488402255", - "8746883098315210954148764703020462487100836419098119268723563180862668140190", - "17681219118469031504275843962216575889405814601918857029882925383476187560517", - "19777524202697558032910183884161018338429578966070241763715789133879529233748", - "5043219963983785615642200211458142932602051386962779979530853680229678729250", - "19841806050269951191223750609047749163829069441644956600756382989298611619163", - "17631647791982642734352175184436927698800269130591642381438200125261663611504", - "17042742099181805739068031017013547212018937842625418102556479120051739566068", - "2733662062406213819716176871158957276807195480146594182421060227039865478080", - "748242504546048031763303447433125218245891652221248512945958633418424197744", - "21429949120079165505315359431967053687487549244847776997176528865459654908558", - "2475186346601644222680416951850997480798225996886346673374824694378098371554", - "14863197331234981197564870097102941283436248045424027191515289897039004816056", - "17690257276606134502150745117877085180586870358214997894856148424251982569953", - "4559891820758930973641609834061124429608343056135452005192199753109509837904", - "15454401903742554462612857131739227720656116757069879307159611546474650083059", - "20823790633066962159762767257071309884061556518147106793845560864937072027058", - "13875836835391599822127355278814509682851830085787338085318856800279934472724", - "6275541422255182056450006664308396679160159969898420367128043976527500351600", - "3451109862994643648688440784951652442136026374861510414549619598290573157426", - "5365729002668974569482726927224509899190941066947032676387945779281837917677", - "926742712462849709662698440169391170468371485712380830395485755398570267511", - "9765660942218343950861963466096481739694594820162128292865481912189376943231", - "6796377608560847314002684835667843049358542045358091970488845411586870633226", - "19987450951662944045566008674292969613743481809231055934467403434784231084488", - "10219429240592164007579283290907650649439236137135526233263120027946178711823", - "15008208149634837312133023713529752285094145759476671710017991585949908787429", - "19585917515800360817881561079463956928885330676318873113818737600568710039879", - "760496886461128300484752740052883353982606719416869583865550880610976295632", - "5338297453230925767968809474204487076962589085958616090224672294777919041552", - "18837695853267906668018794451596360585592472890613988691006516476125380233270", - "13103114974306702000902207179478099850294067104168067226680921215987548394709", - "7456416410901867572528365454686325575726166794230807950172037673422212348410", - "13609793155856329945061146720676570511433630159757604106977603919055081562051", - "5459356157764074777126451457893732400671263988274267484631443876110456759100", - "18968340747680237301886542478716130021561751137858906182504978003254163567787", - "13599136330051204937660632212223902336062675446221140437986682963181435570232", - "14083955460283340099581981224537178400807166795382447529358365552937588159464", - "2860878526347838014476384053846005538671911964382195947732997419039477050139", - "6409804201479915779847342726301864875073457932807495705932934220743481384212", - "21340695348662868415286190018646396345444495289139377733553661356735872405739", - "6743117350305657733750766872094179950919206135990613668778890659570856843463", - "16138733977084662531533702170218033448869985197730328788614520712953469557164", - "15434346572973455077666533703377942564951632392768372571926984107385732383247", - "16376194709471000311648429869188151295241808464211150100799298953600058529849", - "17217731040241981472457431014892782292300981485753420457818326542748238917776", - "12770728713932516808737943449600529810294790017781390009163427193726528364958", - "9319547832118156914162835917629926184130951688224186661787930742684367556191", - "3300997195062734931445267956226521235811697507277645506051435709475147953622", - "5459356157764074777126451457893732400671263988274267484631443876110456759100", - "13103114974306702000902207179478099850294067104168067226680921215987548394709", - "9380284601646238029939121673448226840826564473678361999377470283009586303083", - "882264742732300525282055972057127387292645391728148827563533775212806682105", - "8384062539908915944022947800178840181050762969622974725255522072093500158767", - "6796377608560847314002684835667843049358542045358091970488845411586870633226", - "1761380860632394307923341341502751500152800598340198554914094532068653248564", - "6796377608560847314002684835667843049358542045358091970488845411586870633226", - "3494797244908300460305378858370473489306692924748418454077559598659211986306", - "14290847842905127474046197333942662016255466222141145063879602495382605601511", - "14290847842905127474046197333942662016255466222141145063879602495382605601511", - "1712856054382561256876009280520146404040173405115930983706993670655112549673", - "7017990230101942922046932799238262874911489184467579816277845836739784806324", - "6064072848892734739825173600686111624462724540445225119098337725978251588622", - "5008770122203555064158571549260616528507467639397651663781865493465364347657", - "2006850180463826223852282260898508367602987405462566534907215784204463585303", - "19569242828296378604062816188593042610867360054283688388198232459970836352270", - "18017763953163230484787496619098275100697725101397445733457273824832974093770", - "6847035271131215384224084702748199403431692305386410965388937248152848714984", - "20852822982836370270428336208130774694452706012353006468776180294908441194649", - "9132687731383167642675732303118110886700485483620950075155177074442879963350", - "17576428881902561216499172298311238443609998004779163679274310558626914248195", - "20852822982836370270428336208130774694452706012353006468776180294908441194649", - "4995625210030681114338482771208461813113511487120049035926399088923012862463", - "4995625210030681114338482771208461813113511487120049035926399088923012862463", - "21108409944333648157154559478842008802098282385756176018528776111079749772261", - "11991743352357984080542620812725930476070375974777272133699061067557358162634", - "11991743352357984080542620812725930476070375974777272133699061067557358162634", - "10758342370258994902973924498271763657264440740983762804549073950817004310048", - "11303906169575534045772742339926157411040543882105589848444877254993390759965", - "15209110374271276284416010091589742404103245501690927180810222936212489154248", - "13847425116823355837856900231529413868308426220020314025299759700434329820119", - "15359439551337222813250243660672340422839325353747399177520260873287865444269", - "19550359830055229605480401045520162124032745374759178128337002259976080207733", - "5478768972105287908917558952005522342329511279361606822132059018900647442213", - "9178922630857327419493545919748952621590886087752397897513378167142987596503", - "18605462664483663601442969032728347514971120868133290370471343345284109885107", - "20824486663040893916492978123182789435039618540889656718868409834095383546721", - "10566839905565475639554084209281738316683926772441604201622141043846053836435", - "4099422096204847461550569154712881183468662583337874014378233101295116651238", - "16303259261428386797549765573062444119142258834891297802294293378556802530681", - "14932008654096761798565103480930001039780661747345319616066831775345017618224", - "13401265523174350207399614948582718281068786011606407313908084629997064024082", - "13343351410920743449291972260891276885234460144340441314908456044982814077774", - "6711831470502915734571635592340410723031997135642685270964534669832587914910", - "10167923572811924795963029757516787891657646374572690934680479122259594378653", - "1819862310740274731869533573887623069322780260431237880381117766305092022341", - "2298149851199208408479642123950743164481822651418202356156434069263700082386", - "863484343969259908235561165599153577959991888413699221341286527557412447294", - "19666066119632595452162581424320848471786165329993739257085503275244157900906", - "8247607028653399079967515444168342735382757818040462611305232733794911570529", - "11889333174693715634696230227665725421548562994321832613983903863941723495406", - "1925555192244259738968997504189473112770712882563314425439578655531186450917", - "1761380860632394307923341341502751500152800598340198554914094532068653248564", - "15090385730795082275918673033294417314826868498794525399868451135519815091865", - "21514262377244088249371067947474465713690135535574849762059383639118338292112", - "13103210030006379508710327991596203595117685887272306710281866879129282889522", - "12517791173181809924390368638722485126198198467803444038079663678657941781229", - "19052069645349967969037041186716386223062972287992649495946542374871875145517", - "5002410368449115881500339697696503965900281914341125463866991956460269402234", - "1768216918003348522472312194683727294629858749445970701750333864972223351849", - "15291116065258154111409027765298168104556676059569662278259529571622596764857", - "6875401864395966163086302157078759524588955677043449349219026762955903914206", - "3875617379012003404154714307489161077134802309119229689262899852949161178087", - "8811188635063054096479459519079819415698086355667008655513961733231728343207", - "16367561808119423461759835765335744200194010661712433395500358865835104416736", - "560238348327812164910399733286031507613805383142047184365445888677643974823", - "14030082703988303971232666609091671314095464063858317702865842051075915730334", - "8243122541545775432634349652641858600033039702562011633143136291459904148635", - "7317982926649007812104755989986892347850909582228978673593667327465732456669", - "16053223144051776210021121522311364045105840123241693146516567172706097940456", - "7414844280715453303881033992807659157223447055173254736786963917653102498959", - "18017763953163230484787496619098275100697725101397445733457273824832974093770", - "10167923572811924795963029757516787891657646374572690934680479122259594378653", - "4241690178334943774846705019028501269273892416694670671794589672803576152003", - "6711831470502915734571635592340410723031997135642685270964534669832587914910", - "1237417001024586291861611186489669176090872746723563256005790119457209738409", - "246017008040700840651675025578057843454031025232405202947595612021759107206", - "2298149851199208408479642123950743164481822651418202356156434069263700082386", - "18297565077601301121968803420909787999567680660131631867519061973110803920724", - "19666066119632595452162581424320848471786165329993739257085503275244157900906", - "3300997195062734931445267956226521235811697507277645506051435709475147953622", - "863484343969259908235561165599153577959991888413699221341286527557412447294", - "2475186346601644222680416951850997480798225996886346673374824694378098371554", - "2475186346601644222680416951850997480798225996886346673374824694378098371554", - "9140409583038829003132910079638410788016554172772221893979311217986734151516", - "17830626286252994358021517730187459911437127362195413138642174981503420226897", - "1480133563549178442753614164920808594391633250872284715688231726449945938993", - "3466862489091862890795993808258326750826384147592275668387476845543398227719", - "5164114872848982667261217351533427763411796364093095238653229703398665292539", - "11412752821347216826535801398419920482771697763992364968446350650382447860269", - "20933867936697484275751601875969890671976413989244023450867604066732796912311", - "17681219118469031504275843962216575889405814601918857029882925383476187560517", - "9873572286640548058085538409892808976430458576418083750656661779175873424261", - "16579855004672155110256909868106572004567364528894426089363103570950923706178", - "9863436358398866308277815611043964864113095632273854636835960432894830546329", - "16579855004672155110256909868106572004567364528894426089363103570950923706178", - "9863436358398866308277815611043964864113095632273854636835960432894830546329", - "7714522387938613761777356926030778323332286658158305558158073336459768759004", - "3145424438976626802464323100030866968989785360248902574070867232159665311296", - "18739879347955359773956418472577734770861305252157992280705792499489419269275", - "7414844280715453303881033992807659157223447055173254736786963917653102498959", - "3159583498534012190330375550662507188341730415740096677739645644205631521549", - "21621294160165445140090678961497679782321912856231392535175646140774919324539", - "7949066247702004569754056081041906609455496159054984574104729447791145397544", - "20470775335873221199373651227532410144014713578523919781166528630182925453446", - "15116402110432078055146752021879232331766409670564868314300045810344023725988", - "1530289048398066655574087861935611840874150582543500407956083126001278758264", - "8604568529290264588828050780698498293310498688464896629946556577424676849339", - "7838763884896886040987570208220497725156733176082557316654239393507506602524", - "7545513665204778934119579937931337658034843334245089303733370588230123155016", - "17830626286252994358021517730187459911437127362195413138642174981503420226897", - "15549141277677387172209441572872330225965420758075450560620324149917093523811", - "4897502275158978322828068505045583447273375128802717246997184303345296231057", - "8414880864523282453940949872754793534626295109619691838762572162637337897465", - "18878065040735449907024089176417186463591600871110326907403879557293677224470", - "18968340747680237301886542478716130021561751137858906182504978003254163567787", - "15200076125964164997915247243678824082207774924943152057908156277284752623299", - "9034074759514178946411189547844656024629274521416157134830732661164478063746", - "7570909737956673485546679119196908397396800186406942183165769008371389009829", - "9761904222330241711439825921000566295346550608809343644252337218588990520702", - "8961414565926544099205356497581288212625809041394116526575913229479703555449", - "8919773119195608740047341615127889316170471718810585196984957847849075533529", - "14234865987232099770353669057958910208353037531762075918233528402000261487629", - "19136512789261496605492599684817671516432480462677305224225714629577887500628", - "581583400595965954448518734239211477782535397806368789691005112239401996782", - "13299827233248581777172487328404882732139488366769580639143531379825292904589", - "8384062539908915944022947800178840181050762969622974725255522072093500158767", - "6796377608560847314002684835667843049358542045358091970488845411586870633226", - "3494797244908300460305378858370473489306692924748418454077559598659211986306", - "6796377608560847314002684835667843049358542045358091970488845411586870633226", - "14863197331234981197564870097102941283436248045424027191515289897039004816056", - "3494797244908300460305378858370473489306692924748418454077559598659211986306", - "8384062539908915944022947800178840181050762969622974725255522072093500158767", - "14863197331234981197564870097102941283436248045424027191515289897039004816056", - "6796377608560847314002684835667843049358542045358091970488845411586870633226", - "21514262377244088249371067947474465713690135535574849762059383639118338292112", - "21514262377244088249371067947474465713690135535574849762059383639118338292112", - "6683517783593343339348692344876397332598081400376387653080810411442127355336", - "15102076605742283425124324842017318219912681161720665390327337228304360038287", - "14083955460283340099581981224537178400807166795382447529358365552937588159464", - "14083955460283340099581981224537178400807166795382447529358365552937588159464", - "3072363808626123104135925263732757024577019217365775437960336669287589130147", - "4377638632519605930071082139861588118558175699360749942602119950697098360678", - "20699157141669045943703180799190706161802312722866093672976989823452603746642" - ], - [ - "1382909300314684550514660104659990042039734290499402990328260059588896778917", - "16865453046454133130213589881274909494317023225365314090028842120075142616013", - "10528072213133322078790761107455354183323708288826290762990009372159713490250", - "3791168934124450089958690858913747300785341259292505845464091936679695132613", - "11145851836999276840477610966711948807176809878116430074325456032555568700770", - "14091468439137298875943111575441426049096412018623797180672864404054730042116", - "15344540738518528261251951716327105458369098229491816053580834352777716512655", - "15456830545363564100716183749803456569254500620577068454688360720716691110573", - "11340332089884283387834511422487103288926129640362642416708613676470520129098", - "7133619027761886046668887389507722858862660470856964701531813278560527160355", - "688430954961269668573891969665681419375692824582035113001760758188376803686", - "4426171947370343694822603567835720871959849639283544096931180997860202769489", - "6755597710133788757647895901538913904147948679287724305763709915357297241626", - "2847747194952974862085256925367617446223928724501591897277752044259668288555", - "7755224389760079374568895190237456877255432622247470615526024421775572855524", - "7328033403433696459162970888547161104216725122853016227231191050969822708063", - "4749398752715904105106172015438552774723609282950204174839927643361860567867", - "6789085992950463632268739842413711905278637341646242343309005288865287309272", - "4749398752715904105106172015438552774723609282950204174839927643361860567867", - "4156215788425759636747093326742434863185810160993903661062668474344380513075", - "763859577462605504386124578834556898775858384927612389627206124729510813082", - "3408351553220939590633577513767492409851341625763939129907145711457105147012", - "17156473813426332014406670777115079300425790585145946937875386851318666910766", - "12621532611642082606741950149448256230534900313511006071783344067228986541724", - "10513451104708434901459580099679585119902450963579522982849436661849543829902", - "13269310519429728523382692609240205042239165708947385940732513075102155702970", - "15983486456745198806877792842179902920274042838215859665077069048371520160801", - "12069103818056543880626968989746407514889251571696305134943933249502543804380", - "12069103818056543880626968989746407514889251571696305134943933249502543804380", - "8687658261529728009348064344850086483368983139999203006711873707032573521883", - "10821349636064773479739038238930853309148307765729340732480011072305624518648", - "1056641302763002188633346646887070648272321054044722682877671414544319191630", - "7819079110343798768837901478684492693942068156643453618690368706593602225946", - "18084893077625907503208023226492226349110493037511972173609241238582248341155", - "8091707324417171427329803504193731610332325890243579351477464182819992350682", - "21186074069579536274756404554022076420131660617457138398798163103920911706609", - "9503633369864144294537462525644044371267021413431952446618185122608821948992", - "17143382338783304824138336013195521956117589869665457096967798690554608144036", - "12846037066123748622600064339364825300961473822007048991887768804600996039742", - "11453385855999936693629329483728393357100304576133451562829068762804123715512", - "15176001317399650922776300680173967458930254759764973297650128598695713939049", - "6863764350067192643202230285819928486118441535816314381762689196594823896537", - "4481995453096285376340503528306199992586641269212825065430915839338530665162", - "17639525704709249515090413808713677981469932456741209293598189092216730618469", - "6863764350067192643202230285819928486118441535816314381762689196594823896537", - "2386277249810614501433183390005663837452755084482754002122189704249901613277", - "14597899301964249686250580386973487211422233499253195925513462267696612291751", - "12235444417005300214408559793116870414815991266800673021408529576680106827198", - "18664875200921663892832880295169707535831965580537400723339199514344973115299", - "10861433415390800371506928808938773808159223228361105127820384836202865224266", - "10861433415390800371506928808938773808159223228361105127820384836202865224266", - "14108512565695973999963458079278494788596956332272287477034902481993057299537", - "10601069608413835400822530462467408803585144782669721665922701221278255521313", - "10266724176965463538869156444420447541760225570502770959314115011972730188421", - "5626784144974866016438553079765668557568264407618443414485682981361811484607", - "20693717249925849315368435818693936899160462550771190540749666593985066730418", - "8867966729144845809850406933457984653246679979817002152246414298237926407716", - "21534806985386793842023973103289830492212587346684463427801290582809904322697", - "10237026706521522322843015640985258845063928640313195874634325604855243606779", - "19798552242875728087873390879228599169638765149223008811289958047000795425095", - "9979643901746614104533108863718863074438210323579031214280950793121324434863", - "6136734499962095182320437693299152285388190193079489690559209112830712912693", - "12360548352388267755306950524182000545879587858339038791985718079843372725745", - "16102278812653310466818999488946563273070468614490653719942608893229489367622", - "19253524386145901306382960508889529970679399812325647824421336312798859845187", - "21190171797815263925997505043423146285804835259697892323333504052978670215969", - "10238915334856490922059474430388510592216397088079441120780415057051519967748", - "1454370170716995025255238269923291910892115617854952391988567090841068881780", - "733959713156387473465377906451058734288220195890065483992701039148271538962", - "21190171797815263925997505043423146285804835259697892323333504052978670215969", - "21655040333409722474997111053312894478829575765713063661893506161674599741082", - "3450309260291653746309626198630685957999915157553521878184135420334319586774", - "10359391781217902007387387304791580699322025175541035954511910916335133329823", - "5212079736853461071930598638963822543101894916384769164530722040665293247014", - "1377581865467092849224465078717319951426885557704111298610566823367127915582", - "20889351762651757933257384308016651358122840744392615098579933504457876153152", - "3501942169217925128441908353226834503017782422464482528037020982637624251822", - "21433128401751455950077965651657526858596299936342788915590384505555625942337", - "12732560438748573079628093946370974805198356307312416865022422736717545361111", - "5808487802111630579120238000845215403475436326635542495958697683387327951675", - "13425441703633475616822514038433641800347889877286992133656462255249467830228", - "4751241191209241872118264514012405104350829200987040531764547182613834758610", - "6628097757656907665171290526368273454201711535398855790696775091964759165942", - "18760560019756635910515679013611307934403839739098670676436218042102963113805", - "15505650577802622777515704388619439661141076709489624713708127996196445513968", - "9091142139128901931048121930916633588835175176241920069129168903321079818836", - "13431464579038703899378495484665510639681486012066762113930840147952599472410", - "18294580249324305590253525040751836931939010985881374830363452735239078170094", - "3597790066034385147484872348259089014899193713641824149061073912085150483336", - "1775198991323843889073389807739411775482951320440242913420282718534907656268", - "2344678746329379299186736143728488839519663014489927494884169134127458566908", - "12746266786755374481977748527667478394035642967841606586774511941577021210637", - "5303191581414482872517298756458087252939593820564322286869180875443279582512", - "1005686735638838519459669201999607139496220560031428928223895588676042294312", - "20113910125118340926446383758716000426552005743186565647779465894281446386316", - "8427444425724108238803436070582668841926443760797326035136803747988135740563", - "20422210503573898081342736980100714602228711099519617661912274240473991225251", - "1322549267532569574688825813719912153059663092083297976712506389513815543652", - "6635951099145765283015964769692458841156488256611299819902739785529635499110", - "110012403651438826064163598331799098208826708626786207438273638682874496489", - "8230799014373800810294578749363853509098233862121474465628382397606395788883", - "7594686154310956884266746722581750659155617370886011171176733517902736727772", - "15058400429358468698324130855227043765888561337669159719566364313104840847484", - "19794033084053205950058550088507562536356452640567314450055320120949428421506", - "7758524137675453575286562857349394837516867716189815874534219290504545591862", - "16360394743166872481256451535971926511615110714580970354378222008183414983636", - "17034134847958118323459666855449988016028692382671003978174023675052069306802", - "15507335676394646400179189777699089078187057049481889388152930940727475117515", - "7565407244255166988499865080482197390354202176604423550994921436346621087567", - "7507089064581600269321920720674664898656091075356421753391704232677606461943", - "1536057984976291336724090177717571562149579287573818080678995768767862752759", - "5345707772733497967777950211916888704112676285018397984265380656534422481275", - "13775969522216753878117459953075356739963935206730914359751999125092247189618", - "784654183148324458077426062589182691461220285872319800168040100335725513704", - "20391383847419438840305433356618403957460367067527677530315104679525511316765", - "20391383847419438840305433356618403957460367067527677530315104679525511316765", - "12197588197968062737934059900571455783148553277916620146032171914429343310997", - "7700514229425661099384358994355637202100568182348855652967093742281740591651", - "14569768734530138372656308050595283416858810110015753041631657526272921272995", - "17969969746762679591721568589719186532890097333831113791770718775503674503276", - "21529114470819260629370473525908950422769629616183178518500705979382403609900", - "4335249490277807702159935523147272012652946826221553917127997832458798952506", - "7379129310516287636723823227837718553927512032954769623150792141556157137720", - "10861433415390800371506928808938773808159223228361105127820384836202865224266", - "19080309321767631415212017285167895894391800922995706861234930299975331504664", - "18733857421066453792415792046939003214785169838244873880779778826595084773476", - "7700514229425661099384358994355637202100568182348855652967093742281740591651", - "19364394916116155273426351410713528141735838983370878871637911760144241284051", - "8018971593182372943656484160482411357075730264772848961381643379651012844197", - "8691263349124722917145787689906164720422310309021276988527993307282532003534", - "3464668806764089375933401869365259300871009129454617381873230484450518228629", - "8428102076146088838437926540718176063241919984830545855524407549408264104980", - "19094213774374045790752335766064033697562921339225293193479854819279667976307", - "7890106720594927686649203805811027677033287950540354829926082102352128914447", - "14766829588815453588070055376804779477064498430747158775956763327900314220126", - "14757449327222155578455865755740170328279995234546066558665551937515720242230", - "12088243484484025990016786578437135345413689777599367373327384108488360766493", - "13051884772647224562301859846470628220725101982073884883844809385638103723143", - "7701235197702445861371199013932024727924139502848975979703304975896905453675", - "7635583466289988511199217549197269355506881084962404811230315189745848064619", - "16587019259891873754291714147514223590805001346966059832770991319167806640452", - "13047950049176094252215579967607614277142630343514783912012459243059699127729", - "3193116390170560161280254172295648867519671670691016936529665293155437388684", - "21316922518223062438241673717155890298709144549357487419606273338177541467176", - "4242274122296820486537608264314557836868637820245612247417895536112425278020", - "8273334388397183385158806940256417205313576389785805861716592025828958554916", - "11085276488715607002776440105045852255487159269686753989994534486501731425466", - "19712202486128076286797935931435185287015515749525871438104059132578795560481", - "19563394914833756990780435223254539829356100487238729674481079075120738916629", - "13775969522216753878117459953075356739963935206730914359751999125092247189618", - "842487660430118925929615457693301702865224237172370538583219347865379963153", - "16763046173828169201823006127648681477023335040520400592875792821177208377711", - "11140962441905913160319673406233783897727818930888688442634493886400329285549", - "18596408336915067676549116580766017746312205745605592687494145305208277724046", - "9185909761202119152958791333307300206010362861322444861710382056005421226979", - "2881804091249727215515456290876600950779468778708891030824276710365835830096", - "6338000241851297105020915475267471304657221884206500246308309136269391119092", - "7603067037105113037598904718908405320901979261870464691292286260893289977105", - "8493847076963447084211225972833480177159829124340651040069690763188550133818", - "1334489536693666664491824849753265006597208266478995249916138642910424832603", - "6984045404319035193995818022020461968345422449132327024218065439955060877344", - "20866593637127553451854082009411668241477984334166937476940320661518082903389", - "20881506106193145464662428466397852226917852724231232712491011035390777328289", - "14165780409927906515496256036019286381659924109393989904119432722661548771918", - "10905721262229539961123436788711254501640462068181036539647878108871905247435", - "20651350962129244782320168669924704997903617274251494283373145712627094825963", - "19452144104366591263188957016270811402926694482881731956881538567791431138500", - "4586691607186162657886202200934402294840355519755156340015460829346837479398", - "14061568194216626916122236702169777854156857311664175811516852174438940778743", - "19016042048447299171479853963221434265301666240170004002078393647979417370858", - "16835161056956487532065579593899045611249456386745698981418769328924233551871", - "16360394743166872481256451535971926511615110714580970354378222008183414983636", - "6765311266549513295335624464730559037411778262501350160205007052021160626028", - "19557770562683732087658567651481980734935595839102375901990848353352949054242", - "20540993068416129100386123693128081770742447713995694780619553029256787813827", - "19496734920314504359460591734706683685252839185002918920436394696698282793630", - "20282507657938188888139592885033224700127586591292922011130841143996911442615", - "2374569433528928739428835017029462139250540145375188842943277101227965338869", - "1499717328552894014438572297151732555848559760134612260409596992726557586099", - "8579078495782028646840475748633822035147077956436213321383540847226879239219", - "14406939183904011335010448437184937705168482073537273941019178679124644909670", - "6734502895131062227901645320269259880352920627233331930750408634762329597090", - "21335127243772181200900913979569440509947387712082158248998838032384410963716", - "8047737160953999489314020358800934040144512945490453008372229902992019256395", - "2586003640514844258041069592730332843944570559730610174027005959493874315395", - "13224549943522612112504257563238501993050197936473752741166169912466660914495", - "2619799657314651908331713031892073674134180039524647519822100930722177176268", - "18390191986864970628072071944166852718462497717063963828161208464381754069126", - "9401181095266598803347327636826117215055175961317257109910114816780119744646", - "7167834213858711868948369362568207394339067596188321279772508541553646665359", - "1184587384508135055738864356925652901018181437347967034104459999963911651193", - "429734307913705101748980431684500455695511778217837998765943565858022679300", - "19441277911239746250996721302521192146756389563985340639903822232415370177375", - "11208255825801525732412549293378671402780297179286107422385735623692189411649", - "10478955559310866616631659371703888105388775582150710413366693116978148848759", - "6485040206360178335556675351411058703506394415417193134399503047250557387638", - "18016719133588619900900871858238251150989927756432638440653227177709859025765", - "16814583295041980390217126110316189797325954153317770111592434297864290547837", - "9319389139015825033508509590600667848546727671157311193104910851200991185695", - "2450184547202206275046984674497007069294944076857722008951011061138132844469", - "21550588892261275689735801823527671608270863768453624325761422767385352721005", - "1044242614966334892410255201306052914997700179636829376879374940255408379731", - "6677468102572250777202214649133820055329960804135431896906169606179785400565", - "8746613889542744235970975460826530811155204274216970065454003166563700193287", - "4424635417831837361177025667095425151366922282181145214671327385738118210664", - "13432348698352174723290376556408894288486115525748664584331637425366805211685", - "17655662539269557138359202959715749224637177881304681211103168052209216686051", - "7611548627189350862472214802493459532363412736087188380165372283687235261846", - "10666842238305701497852160122252869236584057454580281100029330236554118565144", - "3248816695351530114676351741009851932494569110112879241162357111263809648159", - "3073099917157959938373085432172374243639266196692196690798502707158186328293", - "12529450374892232006582280547415540632037989311938942655209018216305343999010", - "19012024833812359260582972336395773624868921646797534748374147831290302049759", - "5288115485564563447123366736739514323032752450325685792194182675774332161719", - "10056936170032353973350185323292775344278856322905786221898418606673763871558", - "8003015342825436273061895236160251322865838011366713617494954706168277448523", - "1829787021882844414553409771267621205008066788492609265112925974403107146920", - "21321021786772087594760075080469214882590705514153669252815221458837727334220", - "8073219804820624771227069543367981820248740318635946600621201323707974808865", - "1814213926686728929681767361819171366512369936700423811755679525612387175034", - "3897216778361661746343499734744252759462703248465598321065890405754069292975", - "3887510547961364520943912242793537711281846344361921784351526480928666925476", - "12116263584843130075102006940722960831739067658492723699395497912594738156624", - "10616915521861402857123502764666981037697960315625131778844073105307577145446", - "5611950706516226905072057025467362883487754917983508237519214114394017034333", - "4583573965091669578697467571957192789036977293522008113497733144609672197575", - "2239227008301676887963698793394960288426723825252208732096815173283298894578", - "12120020354469771062285113226968645130202756821901307319393832736961787731961", - "7655501015553462191559608370747577321509921557118994610461636848063736153564", - "13551975197478948299965856238988128473816041982439454652156549841574359020345", - "15294998768487201578152285270888103148903347371076242362567304461971316463560", - "14712562992261420683972725514848021103245106364414633508541244148752152307429", - "4818033287079051846056937680884519832472266996229660822880063568503353775536", - "15979858630136663602832743242688707081281113754057206223398119753168394893494", - "902800743938591513429383952377362828666185232071262274285027354175899841643", - "19493607751317534660462627393934046987545632857407686950149093821933421053326", - "2184792572119005735071785579944955128293660082100069748259639753519378171786", - "7367125626397132614413676026832068193704828461955950293571565202286310159411", - "19983670578153845232002898622856875080853749002069746366306607383003483134120", - "18755543005634632690643175075431932801297037030587968099305668097423439114175", - "20168676120841270265784930710964604593207117442194812546956701789058378983045", - "15737501633370717627322566627715893955366822889266357634579639107174209579479", - "15648081025463068619960153848782785053847443979691651007257684102886590737813", - "2726816514719377964241192802164898030812579474932909231375091000484044920015", - "11940384422772788913895896953581558640329102405731680494132195849092673683575", - "5792454328670871646178251744757582802464063466579998628203811049394998444858", - "5690381624420623704026586060561513617259936701711360031155891288354403534938", - "6536191390600577081191252720748470160536266645432103949153838404275955481874", - "4029209877900819022718278098859600250672982750788097050081860324776458316626", - "8987544202971942616709404582422439359722869124311165367076477234623983702103", - "4431353864123846048464243648431814976882090639438066732217138169733343779784", - "8848620016756482665985922589061924137764995351915360087767950623666558407361", - "7392743747020885839682337849401713058176251928147266910865472853157887401683", - "21574252723913918658935129023290342258707552917069952740469991242764552905727", - "20574829202822309070930891520921215254246417379815583321438907927579802070213", - "19253524386145901306382960508889529970679399812325647824421336312798859845187", - "10404884026041592645419433645759124442328021287777942786756199893816761693232", - "3068781801471335275865627778476584063890415754739795620016342735838806111692", - "21573886605023598622586147005405125246752701434853256546002635744999285974286", - "15084322672425344148979449354439710436859819176604521523105547521090291514340", - "3034444925972414056250697077298642685468362894226859264283958706830256290152", - "18510122895499560577484520811942139880407015219930734249122338767084735025889", - "4789183684394553328681475811278928149270575346493444288616730079943445910843", - "446279489260433195287234627132416935077314633200421129375861901583549808117", - "7273755687784011205754658383950319890744036557507116563512465041691210213374", - "17367177540462025887845334579171755780309525024654982142492028110441359529251", - "8755159098462183647212099687992271788306481989091871265584834029979501089158", - "15799711910949113577018163075863673599182201409648074310375897150424523333507", - "18972272856253425355785173449518375488167114587722913280981039998324616986834", - "13427998023655236140171307935240311969309940771224307570813732942556836469936", - "6844940444332228101982909362465720934195641525692100700480890636202283327209", - "827144581169991586144502626093310652991649777241790090374179747391037947648", - "7833881139213869089717535963001219184869839181052340311928170786067270728256", - "7630550688247435766689683822009645097325047500643625418478408624454899250225", - "9854542602731857930188782654959516918488049639743228030564878321270925914757", - "3316316261774047102127270891529930443633776759500032776964247529470178920473", - "293219090847332584999033042299115672733744917520315832079027912960576204015", - "2784752188600607018284679849979947346270850482547305914105303272955483964053", - "1760115433826629060080039085764265592288638575108531878685708598713079401738", - "6517689595862844215143773944429046196852840476486830843286317056392178362079", - "9561806873475459575519609688391350415738725000394111602987658636279761210293", - "10036727053186227877808643200052618590162585643650854185596744122116500996167", - "4382282946657833550169380567410340742964883787028600827332177590619598238135", - "21835017368008491901032474562173952272668565639866388026854702882162032802448", - "15344540738518528261251951716327105458369098229491816053580834352777716512655", - "21404678866894007357850105480965838927229065425672158221956134805147520731379", - "7883782001959912190798385747879806907692000937010527580001090437923288278535", - "1226916723778166043905363433591882216298047196862425479646391803511317874691", - "19716235393212191379811181228040888376550715482608359324958105769509089835133", - "20846656120345425082178006402525054413979990684854892442647685113448656911348", - "4080986431421031958014228930834804728895618580533534117090233204581602630815", - "6045412305567530468583226481448277742357214921719215191390004949814580018776", - "6693008821864650840343011311612097411185304069662961023037781456903161491041", - "18596408336915067676549116580766017746312205745605592687494145305208277724046", - "11230481360519503672537143713093131212812982937706801703329835734274579996107", - "7643321554075203473621904165907367698422661001854376633261977249943346036640", - "3663593785101027693667704015087939516357628854407362757549659973641482457097", - "20354883550643909897833045650839122941680631394821194671465457225398347308405", - "12400561027666741413257732922783561881991936779689388475137488752228531147000", - "20470775227781408139476602918486573618876787923655098109262926325253864075952", - "5941665261426117070191783565129372194295491085927268813960445264911938226270", - "14876384651277926605236816593490150131042586363933713873358941864738299600284", - "17954840592186723432940942008617591488252936660692730916385385538624936334568", - "9462748242891416597524164574813163662469757435244487383062231354512353615314", - "6717409207007869946825061782562927057730288994682165283370077370310617292230", - "11229510654390863688703180497268342272420662608939050914046021327826617666702", - "4003385736357850866138274270606257584139890361791534512037420150590533822727", - "15382952795392352678587637926840915460680254264401134745595830677369266766825", - "5525822255633530881277775558027056536545359014436357570987907491370469847924", - "12752347891217525183763887717525040743786381498972396894094945613446189522711", - "768185845756901846510524400240203726770925221052420132645787952472279890992", - "4815284876881087809266815198451488963906489449708621192558819277679803561086", - "2820856753521497979886679601699484232471684577369922382381703805153259074856", - "84936924484458032312976710089266793972819869282325928390432560188848079384", - "18317472050147505533118235803591342619533895728415135311865977705801397727626", - "4144142040285992734934865018631294241718776952852871406436834020215626068417", - "19230122765848242560473528642479049852814222277445342387911976647610202983698", - "21316922518223062438241673717155890298709144549357487419606273338177541467176", - "20889351762651757933257384308016651358122840744392615098579933504457876153152", - "520272136526015843892981133255974050318199656825888157141153867620833814327", - "14710849532427398462627087503437013363896843763814052744644905290246436691635", - "20357509721583585960792787335660059651957084639079599353306526228060760272143", - "2049563345401975671874858481770386007746145843178850198001380660584941981012", - "18040166687806335928430420743431822157843386703166768910022683666850905844393", - "4521333817412359123195688219298975442044629660876654242453558351136165623290", - "20486294011883974522252344687453164682658466333527439432097585769579170313607", - "12848486620531703674340734119316015089519737328910829756575728273417994431864", - "1557329560179278933103354466862064505180160194072566691709213360314881660158", - "7530023922070118192366091402595906656429595917187092175776976025884888191683", - "4213956357719193247955211556926324711378461127603645683976278994357916657040", - "11575920739677172187722313889288612403827570198538707757106813300705935659310", - "1006624615698116452104636027011737811416025828576816498998991720217956601659", - "10685908445599553931612819748089921558028123157386889026166604932199913261181", - "14002556860189898824243437147657146116950269507124177898366127398062256906995", - "5012559730949824532344170609670312796597763087497534968398792233890777394204", - "13139328334133582075878400251828233322926618256655164951574499261082650515297", - "6073592560011640885570142415814061704538358579398924846259015492162514954077", - "7936025115775828711924721814383242023589490090204037913586772030672619638340", - "19060639160059520908777232412112364725680228768757659624622156149186720911649", - "8882584160887267024111211852504670848213334687882388364659444145767609968005", - "11926272482342288955078909284302819038126779300615955410866015296101286617579", - "7235871700407120472705160344898959149952435849925583726225791019506133488677", - "1684458755764517563142680967777736447703086359060040897711922653591520828013", - "10191866543587021378023321400874942527791899378379063698309954676788730516981", - "14087164218961687089850174568463507683699722385223254212146145501554265601033", - "7235337360939836124386640208063087857566514765622308040469392368414787129699", - "4203950811107956867353452693332135139254705389955331880243317889277411835142", - "18855693667250539722712921391175098248903062316425167488525881614803141035093", - "17438599543456557336570153621107573392696765098999362930574405279734463579549", - "6967130176160687583989105133894407708771938687936386098272698981930647987992", - "3333424401697717570405896203613131167988025281015844326579828668597721966280", - "9242926362373149448563759381405677174177438930289940512392011096099645832216", - "13323844345003724686536425406591379073705371033708501568312286495913527963192", - "8597447858476207344743975443056105985149218690210170804807772199058129822494", - "13654105543076104093933588626469478479071231731579775565848565509678357253511", - "16814177045169878820937055682078679039627903311486293907818659970715251112443", - "8128093998682262379382394455040288264726824532854319429591960481110025029365", - "5609407497344131732298641258350391227377693340676055106802964044788941074065", - "17341443014645205928540709222003365783460686769783909650004087411896409735685", - "15516131541833762342004326781349748154842853504647908367232191250295622907302" - ], - [ - "18384032038292150077043079812759802184445840660168092802003360821404564896274", - "16325882574385924781495629428377624196386630340779401255119848914519930943732", - "13416366930622199851439037946639090540575533814312274849798418114370699044542", - "15058086162823469682116762250372415103215206021417652887231180616939113009221", - "7923617720219524770449631379288334321512664029066135545873333783379508378850", - "8024924939070771215620155928849078253635865943602490253459125559637323602483", - "13266018768768611023881533592573714095676161199540489525952373209974357063756", - "18326590944021661474615546938995000138039145949346782032708031583307470697235", - "10002310535577049902588329701221234979696292413827210092465015147561937833624", - "14855442070085102148200337039488440345046255314661129749221833009541975455388", - "14519680339916248619274972947470611884417356845443004804481629643518482844660", - "16821634940549496291396403064444379331840575914165330590921127701207416677793", - "14441640212183109756400805052850326531435616155349441110109726915503816069913", - "5795785987239598339193800784862032870112858979685701482034764844198903373932", - "12155258418702501460394135554845638082567730184080505045904154928142559042805", - "16470938625498195099245127182115513505542673242065191727011341533551589932120", - "6552485115415139991780737147533488714420399911498522851243544690287568050854", - "3499501536132367486979225185265103378327341337846288170460666099900974964000", - "9770716999366241099159089645959997952954598064128528446693737636859504751016", - "19876352100531213713544522543679582200497927745460418464286172609083646582341", - "10532722989371014908077632637279512400957014112515377562683268815622398375436", - "11917260139803353116385985587728375546514953002209742236265241937334108262545", - "13384104269737410331772563190580099096203271549612196330873385418846206110270", - "14260280837288626694499442913438841241535343297672602001491326280205082389946", - "7330306258955750126796806132743064359693656869945256503428053776674980632245", - "9264532752338037754930840153552682128062711711806380472480921196264152720944", - "3138126445419179378377839182802386134441847521872742588830098964309706344534", - "4405181389859697930777966176000681729547326095195284728224597222651357206416", - "10324316528666105900749217560339220933945442075154488347649461550626045154329", - "16374807748849963415787185300356345071013261043884012189729907803234186353844", - "11709205410140661045764743844620328841132600407789695282959912302647013414938", - "14601851501799208669011093217659794094660922535576106557310721848925230824876", - "5867436775637977628041284466487782378842964431752987221151837124780626434439", - "10766878702503811477530878606368110214218572098530047472839365958505472365383", - "8057200332098947089752368327316089733126809323927322932785761174677646898383", - "18208221044214436954131874887061831272511079186985447727588930670426908892795", - "18528522789503193107205556307830846783900703305947426131143149791759676406655", - "18873369675845033562284195967941755033899167002834629241626114164382941288663", - "17616349284102443234542780093544052162646402852139142458635416104588989890866", - "13424904079054277064712241317835866410239308877862362175537571385990741882411", - "20179165101842273384425822216667176798563313446567963380770489413607439092386", - "9427815937537279662397774604846902854274989069553263582149403702487462958300", - "19061685898155117592080712889129273883994531745596834439977710132631239723841", - "16218724317721373050219374149020092405445680979103810950755574064655949239051", - "5403972728585442118666196832549680876294442998423301660497812960121420313183", - "16829104519293805516537107005510779568457609726698917067540513510626384406596", - "10104030006645721507095246205718494065645254962641990587594807108526084948055", - "13298465221336901638521338523951279119132444872593133865208129007393673600801", - "10652619884570376392196985970354132875411351116305121902400559642615564625991", - "5208806579327576311931664205858344579600458926480138273261568256398399294134", - "3007138054035796541849269720744095652066974534800018385309717159558949332587", - "12432842778981495179718257006383042651081685881785736279108604866228249760401", - "2668118905120918036753350101769544778699775175033777540668640190958303542138", - "18319012442941527298831481807544132305811672211908374769784639450675803894830", - "20953944559860739843433263040653481667200521100146477903323736396069161785012", - "12325703224780857205890017187303606721181336676832447743060830051562165273939", - "17437143219637216176538010357356008827372303914003543608791309919842075506135", - "14760028880083887999375686477572239002214449525245574148206566606816447827816", - "13741552358591019167895655670956902381867810292512003600604023883051115945421", - "9230335158272215920455097001284945878911541675175967480967639981693682602246", - "9783214687942085433351875353082959692077550390160440743303231840921787344002", - "10986858647908792329441551774746335911126389073360236036656339560202405831118", - "8208008680735509417236855599439006360754473382362775108148469874728843967527", - "12646740905789121643778993480930012806528791550532566322872551336244896817931", - "3979888817646524834873790814704132285199214691217215475648512054098415563776", - "7527865720847030223471941917779407843617854470750730748673321366823835225846", - "4838404308941283873638424501524343682283119567018269066688901040497763949981", - "9853897427495169847924268149735903779398426247559251475807073361967839094151", - "14739856449980291300825509951707163416133512274432094217812660371746519712600", - "4546100539902846936728765257693891065740788680828543483216583685415743828962", - "2136460200336936983117355754239255978870565858402539940350546486275644268456", - "1008112715846859724518708276303354671794718321191327567994690064187501161356", - "15765308926278609172584330609507393830638124917415800304736898299260562152864", - "3018720362996847550702266698932247086668073727985640512853521670723705359949", - "8723172838229612819388086818096920212909282527742863252240380541492928174902", - "7457949172183459588013562825321127540937577076723570765619539232461295338736", - "3381431725816742737615107066100819852162947649712462351092730400590890624290", - "49144348904366909592701486426686961049327398558465706724593331648478698053", - "14639712910812705795970520675611363850780096565001104429636304938634856036847", - "2601519403313770180318105620248150411780859889886974354927432426275210880095", - "21254586116845877015535165569052908202054466762190305551654696792544707133525", - "16967017416839287841232060612111303743192906273165853308987692097726045455505", - "8190066270860398937263370732652489059569519190125350556713497852791974525532", - "5592293430236174364643553475569702365795345043310633591962604933425408999460", - "19601437190468004106730947681747085027690493864893190458981733233927057690805", - "6620018289808350327303731192825679260379214786891234062432290320682927345661", - "1780222248649115664018219448468728983969642678381269593772010730578328677193", - "15380493049946421225502136172274578140501433487849916454671419736137410231028", - "12103892658187084215790091286416424813690935257608728680621415102995134060115", - "10558417632996594946816675174595536967833565216701337725998908796240567714712", - "2134008593159414265057092241480666663811142692170192390104958476838747307993", - "4089491030743108022423697251878450787267866898437511079898929685081330075857", - "474842523391530027517304577292394062295591974088904680434939180702762867081", - "14452760512439157106414202939699908128658735188698359512006961019905017303459", - "13223319127828660252332142774746345011495946998138174657797707291757423705569", - "9457789233665205732571935484275188426754140621151181997242793587502910648627", - "20848046269460145063875767690814244080952745011280004026656585246114900785324", - "19256126083028190953702604245883359187321336872868567645006990589004824363520", - "9226069499318872418902722338506406516747365737616643680963562974842201151529", - "16033229560294034852675287481690972597942932781321447921785602687969449970492", - "6130378426207134229087801512130083435977907404961421040611831844088974017928", - "16104117786239846811883533806186798263220919875925721975035743655501499791621", - "8825748403416377673087183179532034314124491385515691111830087422061399276160", - "13263985747598815694084258815109721543894287523724370006203206984256488355059", - "3585217303845020318509747636569576103673388781605749257157545035392053526863", - "5938687707979782528878913909067026826858175776649790189121315129948371639570", - "3323263177006417005845961752458498086037113986026637926633026730393183345857", - "20270406634272270936776711127703930477091501397256225393370840232060130302545", - "6543429523032456378585178569874581565099744282616928821457420584194169803419", - "3233281004879158251311577968180184655619246635054449383647259345177712497988", - "363565590753963667209249407165447454908673901377295746492250939931100313315", - "7506253673747665029661083455386128881649663169214338117881665129161275977472", - "21501416647259433612904250026131872816756552641528241450544572991305775465077", - "17895466608996124829093706345177152831539318075612517818909877837550123414568", - "11706345156711469440514332252133949588293758413665684503365711677827546899384", - "21646338016928453265433097417574905318028705529333672542449188607326513597551", - "2689104638494668934585838991135719332967195890709797676820705849669757648003", - "16485392636929490766185641715629823413447036038073162457648778917841038859821", - "13782651643019363494667775649301536573507910420065962322411846208355600799679", - "5195012591304124285901135231774748360027420593162488905374878491031324176319", - "7118767702043285212291495163196889014521721655954221865388364725680113095254", - "18670112287793884237359689840825778925230528198624475823861335053115750615572", - "14359715931740481308091353128013725596040416546422732610756973486160386858747", - "3628572300914164447620668972833537682928927543353213786463936727033410420447", - "7947262094870320527558883059188914096345832732113391742537615634285431351580", - "21513989914278359943955181047660381959548808231770390037115619536785603764813", - "5274991987793145661340456560833083078151822667538287540881513163864602830824", - "15952442208511247731939760640664847924025437355449585144407947110938036031224", - "8054355825251675596128613105994435299170405607654040479208209273583830334615", - "4141291648952488846855669827222412820905487704035649033611808235001918239066", - "2689741920903523375222731031969155524411288268704612339949332466071129794650", - "8086151006240637465173649751984841388014752198789633468224719735747637973496", - "9597357294614791996963716784980063275166351555205511764659979558219033844951", - "455728372548615725117581818479577437366893008905682821849695802826327817136", - "4518227905939152051851931692474300566313723931916408242758915166643824301721", - "5347562222438219277689117821474326629446605611209079051698252183001230082845", - "341305939794696338199472144714919453881506186578486117160183665785781815596", - "14022990240210962138750526862341090680818919836109554981300822385989587968625", - "19890389029298661828627014014352271527716811030108238468628236499594914351864", - "12535394257071218822931052158791181886996817055470535346191920674455184099959", - "3288183093560533276923586884406146232604228753772007292522576198300435028053", - "18058420529079911649974865887220955010646357204370123589257769735406809403871", - "6215342907235484630780194529641761066097927261623458820400359964650182306142", - "20013410979010188775474974001270192502182566826138213084778656382211144659395", - "738331644220692613128292872827919008177478305457718481241107999170945982637", - "11198044889868190411836703889269053826586176665718226871536894099131802218440", - "10250768597155281656742522476648741106895077479095354016327517384866840787238", - "12908325472650869505247620098125628274463366124860601318018187413793783634030", - "19365978351181800595017340731689353207632851633188653214392806423983262181249", - "16195373166980530927149471555277210932433796816068912042180466378776046482481", - "4597536171261156422733865589134101402145652037131585973320419279659113898917", - "8155412211220688777314240062201052596969850884196104955999807193131312562550", - "9658737950685283138514841347340207925087629190823191299092635311684388721054", - "11371403928899847156874417284224369063676528407634222575043749730331054163660", - "18430554412462372425706816737183354543344289846327879673783830485039791439640", - "15533818957130870262746117602759610630790500979594961683703765232076592161911", - "12439459027637579441970707614776192307788221084262876607008705183622082840669", - "2229865678106983000702208407760796526933685566992480293944610515861880757054", - "8505031917454026396607372046063671635221360948238988435124339553817016289904", - "15463310343885191782900375919854553857191277641175750014158939916134118790616", - "179676189564162313155654624581858557630757650695956792963101983875692347734", - "8443128047628545047154983586330476562670943862721545392245241438315883500116", - "610960284254024364572653418311804805594631005025565649370457915577656991151", - "218287346026329766516240293068796451059652400837126266113580115509890877649", - "2906996416207967374989020633296836792559663376245811771556829684200290385382", - "19757853649794230508560408683375818801490911907828251932461286957620446303419", - "2276922224980026170767449957587563332111349997749009769765830146283987011972", - "12837448335884946100072770099662774960754768340806388679295836038501164621237", - "12656965682932778834962863095985778968224768726495677200957580652526959932181", - "12186153456138841848291500311013408644078475678038087848950015649806005411750", - "10946554504905859453162779105357303956219573771252934688374370789243663713337", - "21447953102956131056155859412709906739482075457284667312365536072239937053008", - "7145784142079955619668047044439186889741046024672876193495080485538608342115", - "19372619369667956985453522400459440869817251406556548704525881633977903414264", - "6423007082192922385628784876189035184770751533619928392210795966275060115249", - "21751053701945701703445759488960377015111518935503177857617917473694884334768", - "19202849108183913555467651329891608290530211192255054815989689706835310213532", - "13997837036678319179984929630922439182411647532495204418671186170902279331118", - "16829097896096304949699436007150626648006684412208553824901796324209424485605", - "20621795603248217280600380486257719077088234877880264211050164963331488959250" - ], - [ - "6756114585610354761994934123573590576031323775210670465921545589395692279716", - "685191805930054500210841971125967995877979358720331850626217363072910756238", - "9485662350160415224025363220111439348217095388873727340068428730377533770959", - "8115934108672428538235894491316073779388187915976804800386071626580618070915", - "1282508149730804358259895843758618366334960451924642746120418205193280714282", - "14179929979396096962395240181765026599552585980602337930539087878482563881187", - "4630422650153373691911867673260637173668211109639293196215264833825729016660", - "10664506554530343425557903484323865229404997105188758567904028571047793109248", - "12569438343158704372525852505429455301932541035205922269054663733092483725621", - "18075860840134992364887712277090525249125713130048026670551667857590168044150", - "6154991657198404258201588923691634848774295729280659387098858590789010236064", - "14267908181765464619205083271860485800477876457408395390823122500237409911737", - "1102237330720002658746639905876906968800131682764009204285626254596891383598", - "3547513439323180749941893576961937199337710223298003162954767555412201105289", - "17706829367463425674365471065546223022066926421732799330617953029040009197574", - "14405032177257175965480008310933238307085070634890282839670257486387454638605", - "16150459780007919237643438892079052117763088991594286968912778217743749808724", - "2041308333839704877999861231353793715663233333148936348109644601796263051936", - "10654557998403524327322658542343205170576622485966722206668986107340289125553", - "15683345341223077004250466708177856656605869466419149111318066499485004515039", - "4851847053678110074411475159892125366925656125386711725559823281575831998113", - "18468500486206418044567068425481273509318951875399172221446094558099724378229", - "17781216556850064574572992323382751246594282925932203203966506418741013828433", - "9215399204052643176708395537776458573497981057708371425080636733118487394766", - "10352889153408692659497401017062727478300472546379169920987419166613028928401", - "16544364189783571168353046347334355504283451801394748031957552329067069885451", - "19513626346064415270953530785284640989160185636547088851444186393536505956312", - "21507789966598090728129644266951402899183665545376746784680322546289064408616", - "3777804281092943005032440075760528256147946773339033228254443365126142848562", - "10034317871377674726894524743197379547884742384429651862887716826064149312613", - "18652802413339511201490496342756311260043848093866374322617093089214261852450", - "88491666381245276840478840222868477550275567272781244591188834546520629627", - "1837932609622673736634628901940252182624661465000166397967561746138352623495", - "16516366185503776777940711260237238136458003480516798314997133506063998837111", - "16899609976636187174992898619878846185197383397828911518858667987132204639099", - "4186285980460190597450013609340096545201499190740171026141389796508417050424", - "21295162547103756171238117597387318409890542008978911074437257458735931383796", - "20723397660109909759042149741566330304393031705439793412647416993880040354920", - "7231866950204206960643050602520483342924652214000921537045914300685454680510", - "3760367901906958741846998063936997993497919841116582222041657691009610308522", - "21272553511847456527390995915929270080804300991687252088083217041772303457586", - "223237306077976162665730232209562439022889369156897703167612669100979874781", - "19628152733376574321793493284716541207663030370528428079187599342408584237192", - "13389987443808046793436430491567860935193509236695022762073582676216463554308", - "20360812436001559907815520397353643874559607440966576854756414267324078761037", - "15764819614547669146707355992729826377312128051301306106121037886033568183838", - "16835075289920998810430426808456760333446952739301425141083773401515217532573", - "13912890945390552574396850085878260976858591710885633113444908468936710991007", - "3850620678967898589201560992311719484024187266294906542073936013250724028096", - "19853371021394313509499830210672521966725323412870396472054324737749910207443", - "11509853509628594777439786332061286841028434645754675732122543253477477055296", - "17515822441017561568820747229557791712361972423438421729429247961554778670562", - "1210125116291243217712379936619824242165056827587223502824653537675654869390", - "909650008326137352515749482999054968607700881621835246824178441637383491816", - "10647553605168383420665946502370697150842138719420648352515809831449000197561", - "14764198424882276086028846685114284931456180610295007906614574313245680130542", - "10116477001565822169361919501941057608221929354578980975301498956624792029478", - "3964423669613819656260197337633994400192254312384970939923716745271807937544", - "5598482843782625471816274821456366597935221934401595126755148817161765161175", - "17493745343176744217837696499235497049262623813671047624759094328393853441068", - "4006835118446300700946092814622697753260928289052061092598601676597752550098", - "11938307456721015004183095076201563029810330352254231898731325062643433735448", - "1925515057079562420247762166659644013982556650430554914025921604194611316743", - "6779742589079560513449237259609895653061404119973688943293267221248242230452", - "10722131070799688224747057607024789566204303157768342262589908692685202069649", - "889093799700285251267346726461032208181788268649681273496088259134885694729", - "9240394747451885131248401610748434840814449491707697525262413356015165745733", - "2297215971919575895468640126325400543944089305711976684633626196706221640537", - "6236769500636403719285983002400940040500429703077351533992378525735951931020", - "15258316635161904779871049636948950620087009567741990433563557658928635645358", - "13291753096753699715216601612962869714044130162352331162153336136407418418781", - "19161728207054244981211252063287219352618863551880810806761867024228422426040", - "10877442832509123955563284194460473415229089143061993788351408998368066310817", - "19960704352098851578795906897214223128575953737466324084647573491402086746789", - "12755962008331072277402540243767149411866842102200186746357676045182982402980", - "14985095391897672417562163964533149738636373339868161057918780719047354333899", - "8307331788952511669335326696241965168168509613121554960714843860160766043960", - "19873272963237015189166680262603989144445259644678228670214998706360475857499", - "3079013875932985903113922322719671338817143568956981241203729763662183356826", - "9754597481956551670311450377239180092924054222127588590405698617629988725462", - "18451426140986419722975298625822096261792440604420291947697287288831849140214", - "6824138091930367441155411707904584130554412122966950035350189242759120955099", - "16016939788531971692256077055785793668857676188147968523985994765440603189270", - "15616157455822099597198469152885184272886809581087964248375694768806525246193", - "1492225973446126497877107879518778332534564801831881469724932844954744356801", - "7834919872630768323517082525598572486635886706587960474883056897603323224534", - "10318006338377576657566017561585099599119266726228507980922072334750592897924", - "17397010582793628775343634023832627132936580606676401668158874890206422969719", - "200578453217739826947942162540369310405531669234082931261810840192703265389", - "14714355164542725609896331053934773110812186296614906037432861262123940112031" - ], - [ - "17827633571109569967775499210514690659277484023823691263273779279684768456528", - "2563605807293253518346650080134711177642026228384442720436530504312444442085", - "15482914276295460587126253799274168210112767020512554885602160649059017798904", - "18837539802427918025916913400427445965450628436038763148320136593202231548045", - "19692806483217534756251487603737509111672972578157429708350628863638099796673", - "15232424111483870181301575712432512895338847871052747179516732164790804965002", - "14998282717802988553910391897550216264062258184411977568460566222614218997150", - "5663662771858440666331734403945661270410321085684118379146932308968759495242", - "395522778123506133789876136432747277274384149272696963353232675185483844096", - "12318672477572207655048490218550991674814591812149313800868456883454718051367", - "16538699449567321405284247733926255556898981929799649219582772086617933112066", - "18122470362843548120999236080375647215009075099540978219668094830100393815637", - "11337105103106851807357350667201187361532365241489997721531901295557578024393", - "16282443095350890748643674435165702579022932755225361838248903702964648691977", - "21432590535213580890814537665214255792392339432585171678757934450691655530344", - "18334365960628687555458386553005156185366628370295393310232735350003844912114", - "12567253753335859808702843492397797739364492810403345067785232575822995520318", - "17829276260692821281472107340135517420678366621986429906640643456703298175679", - "9768396440049498160863586957006249097053393587267195596145625976572627620193", - "4982005008617813627756274776734956519917828384044773981246694967469248238192", - "10270666958505465739145760070231304367957650983691933410688259120696007405169", - "1156722246444992850890909171089904173836516424637972542857987142445352866311", - "8937409857590388700173226067264590075482046909037264985485570640946648025605", - "20215648907120535783800996566504354659423661069734351949929880138209130719535", - "2053647660997537606889633375563186563496877058453246217363404836792554331932", - "19289310232147597998893477571249345925615191655772642449111808331202278985163", - "10678569019513338569661517696488498851504085786602818290662279573166611328642", - "8509181421630262598061386673724261194143830216031954747177853456047926865427", - "21385417481935151101806521352817190341276744113588804740429890839081824850925", - "9523124565982940197060708786199918383843772051999820137534246430047363579402", - "10891610312738486546159687201961250165148811617104967778915787556793612269414", - "9545401729281049029927962550789413593721509126531981032153077306820702902365", - "10674272906056676744732639184022232386846796378044543075778863830989437365521", - "11205154865282062873295328588599915602011505288434165564114092926030607714934", - "18322500364502348232400650886167167798638507754195403166115296043906784536934", - "14231496365073456594114713737890332228029969732219095490560427316359369280944", - "2888047037468598660371056478074693829877909182765224115125156184568666210498", - "7163013250514362467393319873323546352275910589930937235699092227656044868961", - "1593207912361988299050006994150494232024738257671390780460997598539464318353", - "13808781783035822229735983289694154498964482059618886179620405409710989418069", - "2437054867506332789089292166868242367084736959262955104198886152793773359384", - "7069525825482271036029370799629059680123165849421292807642118009516436614035", - "19933365432684182676548786913460179079372672793617974098669668894257667487522", - "8923743917291280452636740975413705158495915517046457788296426616256590611853", - "13407409818930759215375135429865673116224062164789562023529225992389928131334" - ], - [ - "4349651554659314350557007739141733916947588605575081028775988755625575820448", - "5730490506571511878663916234098745643248581723305574947202193759976328865864", - "4084853101362693778722181243065503055163858779980362242589509281305151188458", - "11417859344088594278487324574956963201127156654900353789529354422518156015551", - "15287670059434452022476809921492512551073374335852064416656578823294505404114", - "8764079452866898429966808314931563970636386655421968393988002044172819834839", - "1334938584524992735936541904834563879690496455303393989043655073331201660312", - "4967891983826992726060385606061809825544451715035430120054810298381873010679", - "4390214269477270870946780513192175690419339382841054131166162227716960621816", - "14855055515856458753048222950354515646347032381911916925871439011642042466988", - "2786263645858265160825962235413908944162239371234480849052420616636609451574", - "11647322075319860288284084201143951417296866214783564756116156419047403259772", - "7985635234262780253759524136671108435477787540895600957214766832959740161516", - "91099139798114198526124310949032729897839308956443131818219781407352838697", - "1566633110456135216172743910336712698479507033592430962397668903430098732806", - "8302446159081153644080301809261122148761621217477482390012716370590776302369", - "6144986359439165004920957805632735515690678653178570150966983723380880550093", - "6207972168913321711138708030927581551648422663701064210875919038459874189295", - "334735597781062478333243793954370236912894625263014929659966481505637466493", - "5227827248339109599518011176916875007306081135902721792155441873510379786961", - "10157874106687354840076781820183016144923679181688908618509364616980383583322", - "9939824194882814927366009549474526935733744513575447578209714642137125695580", - "14135596781652702873643994368842704265751754002201740220407579301679860045391" - ], - [ - "2489137073047841221028453992902882278466490530428462498844984793962057603682", - "7961663283643806968573894688281333105896941161374635862250453484546999045532", - "10902039708828631085175169457843022572142797721993788685123723176032387976262", - "18789238561149372226932556500112346977254135090735982558822578929242625727298", - "5598652880754413764975842064968382265897861229695650388794537610707407243812", - "8746126366119358728462744568513704788151273183338794905587358690555086852145", - "19471191820073583237924434491737432279499603093210421912688437818081179057030", - "10679333379123331968739184662657624670854306741822868872277551048053654876484", - "5568989700275538741003489202268015747329596471433121629555697906553156448990", - "3771165620807304809316809935468171197098997594980139350840469091432429414181", - "9967386820007714076193345803593646460449560328161535748979491510203911402353", - "18823150653751325274074213652964451315088900018625505074964907991328989941695" - ], - [ - "12625854858591244015703410082258181194465150277707030047831761078054354835742", - "13986003123484105601188074828925938211590248429518403103955275271837674593039", - "3558888383317394732201652780333465283108168659641175250257219411606657767946", - "7700786125650112764182113532122537174173073521111117563950452052490265627960", - "7579515344887337441074186906508200066208505318921088212490643859904780290518", - "9892768514825076234919699074918396299621160467708043207918213591851329761254" - ], - [ - "14210396003944592838505840727936498996774563492885655129744037203711071519842", - "2343555844248207151804287265535675004312305658635500826654212476062778011969", - "8751500204006532900295191989057368833262701815879890267175442971128121712698" - ], - [ - "20780680337852547311701282554071370452317057141013761689548839991734323516", - "20789533753311768133313005352607515650095008797140565961764339383448909259213" - ], - ["14372655903209583494481911339418746339944939756718595536206203655907521070372"], - ["4859151098366534854131598791869577323397252056347166579016991027044914938660"], - ["15919709321603172098065421884373763810486807864115065485593064241236655294707"] -] +[["3072363808626123104135925263732757024577019217365775437960336669287589130147","4377638632519605930071082139861588118558175699360749942602119950697098360678","20699157141669045943703180799190706161802312722866093672976989823452603746642","18922393661078692490263433007192606341964526909486726140091553946096505859794","20129263039537196279018213770495252161246696438839873457128720225503725485038","7714499127613764388949922756132097142431016540952351499666214143198934832090","3029982012036821857956277334661546229638304381835477973554421659438871352378"],["19597393357030867422697635574213713906376456347782820588592675113984699030702","20790778313247201423913333373712088102864187300712415097412253760093826883680","5606712314058945535113885907817066541203370227118779831580239385732730066899","12259760431166816528575576454529235183812315044389396668977309150589287003000"],["5773306190815246389265142972359984468160098644963572453196471113942118838823","16474608454905605856668965021828569147926836273332818788422558988583639350772"],["15214792541011749306909848582595159154333128031754709731393248957192186003948"],["2037353317503652001574417348730060130990628386278662021400361734464624343988"],["9951955655339055592084501019497765684279214376473015219488027576944763965945"],["11562569504449267108775212930998904819850639513709052054443147523110820330971"],["10524163904884529249270419077727631523914723022784446704570125650374924831065"],["2670545888974227195359180788337569245020457633624319460230807082158370554209"],["5394168467854652405039339203298792057739987919673915716406878581345099478077"],["15244760528444592847056694681810280570344339851538846585180513055954360349074"],["14583459595285094414958376146704155635454740581065851321235904325541998607878"],["4828991439314899772118435134806366013528004298454037083822768772252952583248"]] \ No newline at end of file diff --git a/common/src/constants/constants.ts b/common/src/constants/constants.ts index 373b077f..50d87b80 100644 --- a/common/src/constants/constants.ts +++ b/common/src/constants/constants.ts @@ -109,6 +109,9 @@ export enum SignatureAlgorithmIndex { ecdsa_sha256_brainpoolP224r1_224 = 28, ecdsa_sha512_brainpoolP512r1_512 = 29, ecdsa_sha224_brainpoolP224r1_224 = 30, + rsa_sha256_3_4096 = 32, + rsa_sha1_3_4096 = 33, + rsa_sha384_65537_4096 = 34, } export const attributeToPosition = { diff --git a/common/src/constants/mockCertificates.ts b/common/src/constants/mockCertificates.ts index 0a381397..f1e5ef80 100644 --- a/common/src/constants/mockCertificates.ts +++ b/common/src/constants/mockCertificates.ts @@ -65,6 +65,70 @@ D2BiW2DQjX4OJsOPNs63+wCE71xj08ZxipFuxFWhbjtO/A82h6QMXYwfj9do1WGD oouEG7wJwn8++cuiivyeTWf1 -----END PRIVATE KEY-----`; +export const mock_dsc_sha1_rsa_3_4096 = `-----BEGIN CERTIFICATE----- +MIIFWDCCA0CgAwIBAgIUITdnjnD4Vt1ZXNRBrigxQIHVzUIwDQYJKoZIhvcNAQEF +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMDgxNzI1MjZaFw0yNTAy +MDcxNzI1MjZaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIgMA0GCSqGSIb3DQEB +AQUAA4ICDQAwggIIAoICAQDRmNBQF0kUgkjRzJA2sbZv9Qt2Hhi6nHmrr2IAp4Xm +0oc0CgZvfPfk049CoYcrH5gRvQlDdrgJb1kjXeh4JdUQdI0Q9P2folutUSxhdk4h +6Fjr0kyUNFwdAFgk/UXrDmbKMbZwEXgqIC9+6ShVF3mBKcpkxCibz6yPRFC7blM3 +deFuK6F8M4x+mvx3cesYArcckEpIYmo9k82433XBU4vas6EBfZZjGOZ691ZI/rG+ +WgB6Spve+h3sP9BxFwAQO0eE0db5HDekUEE9cIAPuZfA1Z1oH0l+Kjk2tMsTXXFt +313+Wibb47TxPNHVl+FZutMtegMoTFaafO/TySIxJkvI/5cfF1dsAydauVXvIOhF +xyVbLs/oaJqTVsvOPD5LC/6rOZGMKabMj6epT0zxK+a3vryDgObLDX/fkHI/XHGq +ZzNZaev/kVgqM1S466nFjuqF3gmYzQkfWrVzLc3qOdo1z5+hDfr1FFsHHUiJPN3c +Bj4je7mpnkdlDFD7dY3bvmiTPkE15oxY23EKX05fi9rfhwXx7qH49OsZ055VPdkg +W0tRkFUd32cW5rCNneCjuJPSBA5ygjhO99jUH/Zdu7r3Sjuw6YCcWRBoUoL9EXZ4 +6wSVDaWU11t0whS9TaVsXCSWB0u+xew3Fh2aoFELq7iFigCLJlOPQk5JtVQKoBbO +QQIBA6NCMEAwHQYDVR0OBBYEFMhwoSnLIdPoXk/xq6RxhwdyR8kZMB8GA1UdIwQY +MBaAFDT2A3BinU1pLh/i7gepU7W0I/2bMA0GCSqGSIb3DQEBBQUAA4ICAQAKbjgp +/Lwrc66YeiEPXtL1Quh/RgvaOjpr7F1NW66OhYlokFKQEZMbYlHn+ht94py3QPz9 +jdhiftOs5KhVDNdDPQbVPmY+0AMzkdsju08nJZofVri7dEPtbZcLJR6JVzEJ/hyX +BnX8nMyPZOdUBm8cF212ZifZ2425t+Qz5BDRgU37SwZl11Ml6Ahb5LnA6gI9XbSz +5YGrpdtS4K1bgdGgt2gVBM77vM9TZI2Tl3QCTeyevx6CYOXwyfdwthuHkg9DWpCK +khNwdBZRoh2zaLWY4siQcDS5FK9CaXwgyHYiXcxcp5VJoSATTGlbSpBmhxTYaH7C +5BelrtrG4B4SbZLhl1+pItamCWukjFpQvkOpoQ0D8dlmPnroQhYbl8A1phwtM3dz +ijqrN6y/KvNdFs2DD7JU0kijfEhxCYZykEQcwdm/7+Nn302HtzaIJ5UVdEP/fSkA +GT0HaWTzIxZr1ygUfWNa6SbSfM9k91+ph+oENGHkkcuejXD7Cz58l0czx6NCkwGh +5hHnzO/Ju91IpM9rJPgb+/0V8suknDoq7MDTqRTtdoFzGf8Sx8Y5xmQRjdMLN3Yo +6ZPQ9prAOy09WyHDQvUXMvFN19u2LpXo9NOq48t9dUKBLiw89j4oEtwI6PpkHQwW +Q5OZ0neHviTYH71LX0igYhdrZBjl5cuKhSYHKA== +-----END CERTIFICATE-----`; + +export const mock_csca_sha1_rsa_3_4096 = `-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIUB/B2jAj+dq2ixSRYqxgfo+n1o+QwDQYJKoZIhvcNAQEF +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMDgxNzI0MDhaFw0yNjAx +MDgxNzI0MDhaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIgMA0GCSqGSIb3DQEB +AQUAA4ICDQAwggIIAoICAQC1vqwljH1v73dJ1Z7wgrQqwXzEPmQxirOUQyDUI5zp +tamZAzjYdnY9HhRZe1ZXeBcSTs7/DgPSnZibr6DvQGwrgTBRC3KkOX1tiZsL1Txe +OkNR5yfRfdbzV3qUlzP8qbO6oR6ukVHf9NS5EheQQo+PqYz2kITyJ7EoKiLjHnoj +Q6edhDCng4a3zr1iC4X+i/ks+MKJbw7HXHbqE+qRG+/zBlTzogN+DswLCt/A6a+t +v8lf0nbIDqtQl3CcpPLQkvc9Uc9Z0QT1zfSWpzlD4NqrPFeZx64fUtHyWr35+yZ+ +pnhhZTEsDh7VExzqfh5c3bYGBIJJhi2On5axyXke3EQfLPMUxDpngEvtx/UCnhtF +cmTOkWJ0QAEgjwtG52cE4s+/uAmBxolPkbQ8vMhOnf2Y8WPM8NHMhS1dx9JrQlYT +d2qW65lQN1ETCN4QzFNbCS89R3hJYvnruHihxBtlrjoKh7YrnOKeiJ3FfcPzmKIQ +qzbckzlauaopVn9mF7Rarf8x1+Q5aXFEr33NBciCX7M3O+3DHiPbjxNqNTtRfcrV +Vjn8qCrMNpYcmL8pFpaSPsVGmchZBLiKaku+NUkL1aPg/PI2/QHc7MBySLj2yyIF +px/Yf/G5dXOthFPfh3pIQ1qYWmPpJOLRlD/1hoD1hrpfWrvL4jOsvTiasNbcmfsF +sQIBA6NTMFEwHQYDVR0OBBYEFDT2A3BinU1pLh/i7gepU7W0I/2bMB8GA1UdIwQY +MBaAFDT2A3BinU1pLh/i7gepU7W0I/2bMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI +hvcNAQEFBQADggIBAGTkZ0/WpcCJcIrbTYEjA1/c36HSEIL2laK9Nbicnlm1ArnJ +3EBI2WzMw5cEs7QCeGnFZLL/QHCYvc+0K6KXeyMQtwK/4TG1QI/Z3gvqseApKYXi +8gkxUYCJcP1tOCXCPRHs769dl2yE0U0h5QgSErn2LD2szZLv52lLm3ym0OnJfSV1 +1Q3AEeW5bRVoxqbV8pa8ASsv0WCYtbJ7VjU+zRnDePjbMD3VPlQK/H2LXedy4zDP +dEofORYgLBvFIEiHxQk0CIjO3x15uFF1KnbrkuQA0bXhwsoTw16fEyTNvnXN3z/5 +8qFeFqGdoi+6WdQRThoOcUY1BK6GP0o6TOUbmdQIunB5r8kMPyxWqim/vY8JUnHW +GkSFxIWvs0cgyeagVWb8MfcYGh/E2ac7StcNXq6908gl2Cmltrl0i8Oiy0UZQQXc +fw15zfjXVu447KURZRX8839OFTOghwUP3c95P5AYGsqdgF6NSSg5AGTpKfTOhX9G +ihL8cvCBzk8T4Kjo2Hu7aY/QFkePf9L+zVKDokhdiTs+euO4APhGLaZJJ8sD61jS +ZBsTqeLlzl4sPikJHF0nfRaQ9FvptbXAXxycE+AltBrzP6deEtssI9PU+XMkRgKa +EBh8eXOJN8jJfo8YsxzohQsS7n+0K2JYC27bgECSKtvof4oWjrFMExJUoZau +-----END CERTIFICATE-----`; + export const mock_csca_sha1_rsa_4096 = `-----BEGIN CERTIFICATE----- MIIFCTCCAvGgAwIBAgIUPfIaBL/H++x5cwbWjRnVae1VV3owDQYJKoZIhvcNAQEF BQAwFDESMBAGA1UEAwwJbW9ja19jc2NhMB4XDTI0MDYyNzA4NDgyN1oXDTI1MDYy @@ -1660,40 +1724,134 @@ QVR11OG5zNL3r8jKxMhGYoLWVxHXYawmFk5ymjnuVOxl/xMrP5B1C3dnkzh+Vl/i `; export const mock_dsc_sha256_rsa_3_4096 = `-----BEGIN CERTIFICATE----- -MIIFpTCCA42gAwIBAgIUWTN21jdpu7PcJMCb2xNtfQz1gAMwDQYJKoZIhvcNAQEL -BQAwSTELMAkGA1UEBhMCSlAxEjAQBgNVBAoMCU1vY2sgQ1NDQTESMBAGA1UECwwJ -TW9jayBVbml0MRIwEAYDVQQDDAlNb2NrIENTQ0EwHhcNMjUwMTEwMTYwNDE4WhcN -MzAwMTA5MTYwNDE4WjBWMQswCQYDVQQGEwJKUDERMA8GA1UECgwITW9jayBEU0Mx -EjAQBgNVBAsMCU1vY2sgVW5pdDEgMB4GA1UEAwwXTW9jayBEU0MgU0hBNTEyIFJT -QTIwNDgwggIgMA0GCSqGSIb3DQEBAQUAA4ICDQAwggIIAoICAQC06VTApDmKkLio -0T3v64StMcZRFHkR741UaxX2D6sa9PnCDekA4EU+6z+53oKQrjztLiWqnfN555Bn -s/dW9IP4V9NMv2SBUELyL+tLs+mVYmYnJBoVBABcKOWCkedE6KuJZe2leHp/9zLQ -uC8rrgcelstkWxVW913LhvWRewjpKRw3ukax12bciYUaHPKlht9/ManmOKC9OJv3 -LG4XS73BUFoNS9k4r+k+47ONqqdamy+y+d4OWR+DtybGIddfQoDk/QerOmuz2Vpa -o6lh9qMkTd6d659/X+FiZwJXleUUbNFvWi3ifVezHhwruNGdxT2sLV1SZGMojciT -O6OPJnFjKOu/6Da5ALgO2Q/G7F7f0SexpttmWr8QKbP4IFyxB6HHVeJQkrmdTuc2 -VVVT+koryZhLeu4BBFdUjdTHQtg2O5/9apyIacO0+OboyZakLv6v8vzzEhbqDcva -nAey/8lZFaejjR4kqgkB/PWXGpifT0JZy+oB0JrxLIlkb95n2QxCgBeY3l7jj7g0 -d1vkNpetlEBSh7y6WV19S4DN6Fut+M6r6+NskEHkJD6s6aI1619JWsj9vmNaLITR -c/2CxmhCJgDfgDj0k+zGXLX7x5Pns3dUsWFrd0WAYvgpofb8CUL6bFOwqD5JGvlF -+dk+3gzUZiVVoYlrGjgit3LCZ3WzjwIBA6N6MHgwDAYDVR0TAQH/BAIwADAOBgNV -HQ8BAf8EBAMCB4AwGAYDVR0lAQH/BA4wDAYKKwYBBAGCNwoDDDAdBgNVHQ4EFgQU -jz/7QvwEGkKSkTkzP03lFhjMs1YwHwYDVR0jBBgwFoAU9DAZDj4vOjUN05u3nBGx -7qTQkYowDQYJKoZIhvcNAQELBQADggIBAK1eEsZzIUyNsnm6BSwgc0FHB4TBimK2 -frZ1QTVqggDjzOS0Nk/WuNZxcpxdmjp4sNkjF65AVSR5OSgCtk5STytneqvfbjXY -xq3Rl6XWPMv4vY4jEQudduOM0HFkKPMafW4x7etaJLeCZ4rlfjYMZj00iM6G/o3v -jVMq+7VickJ2LMK8I/3Jyqwg/hwZ1oKhPS2Lpej7rA9VwBMTGLyGoyaVIp599hwj -HyanFyDGLe068aF7G/LJuJ0+FRUcsL1sScYKOs9bobQZrJugBVmHKGCbZGHhwwCz -iyI42U9cLL8taYlRK8JgqoDhkQRJPZ1ju95jVsxB95a7H5MWBasw1o8WsBIwuQvl -ANX6mLlssIp4ZtK9TPhIfUhl+/QDiC0QPhND9qHM8xTEZR3mkObmkcFf2yY3oXdl -fuJCNqgLe180lihktlx83CZ8NsOWynQIBEtBDo2Okloc6F7ra34EKMECl5WIl5bK -UECsc0jCN6axcmFy5jRI66pkkHwMkC9Cfgw8TXaSA/iBRUEH75ft2yYx5JDpvx0U -qgjmXHPgHwanzAC0FdFj5d7yICoHOiBEj6mmDYRoB9inGnoyjj3g+ge/aJvQmNn2 -SLV08wwczovgh3fdFBf9FQcfT77ggcJd4vJXiDfNBbQghzkh5EAugC6nlG3zcVqP -ZPOzG68rtudy +MIIFWDCCA0CgAwIBAgIUAn0wjbn2/9WEXhG37JuqVuCpNb8wDQYJKoZIhvcNAQEL +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMjAxMDA4MzhaFw0yNTAy +MTkxMDA4MzhaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIgMA0GCSqGSIb3DQEB +AQUAA4ICDQAwggIIAoICAQDE7GINSiYyMoh6sOdz4nqnq5ZlnJ6vJy285ebvvTIy +9e4g487E7f1AZw8tWLH96xwkmfu7+GR8nKa0fK1MYmQUM+qyScXmvHulLOHop9Ju +2Ehl/NGSdW8TzUU6R0R5AV7Hj8N/kIHtxXyWCn3FL8uuiCxKYUIMUTbSUdKtNH7/ +kJAcQThH9CjchXJmR8vnZK/7tVQ2VENUUt2JmJRx4qcSx2YLljLKcMuHFAgfGK3n +R2aIQouqNUbhy5r4ePxw23AHtBnYfApJicI9yl9c5tr0RDV8bv3eDpaOb7DFFwCJ +4ERDy3jjlswGZP4Kab2DtvBIuyxf5wjMdG5Hu+v6wPoINMjfFuHkcQwhGoJJBplv +HAH82ft1qi6gg9zYxqhPO1+syopNleadYE6d6NezOKAnfDiroMJJf7F9pfZYVimC +SKnvQO7ntWoTZh2Jnga0zpR2SP12ufvRneEdYjWA5htMOW/x0AIHLFBvVaEZBdfH +NrXGZ8uE6W/3MDS9hErwudlVY4ZvMMxNxfxPbJXfwnzxvHs2R6xnO68N2x2wuFRd +s0EX2yIjs30/IhmFfV/HpB1BQShyjPzp1/JwghIzkyYpZQST+W/f+gGJPR+gsoGJ +2xGvTM4ZPWr09MXOLtpxQPUXBGB4EqeYsHqrp1PDYmbbLRTLCwUNROVqa+k+aYH2 +IQIBA6NCMEAwHQYDVR0OBBYEFEez7ENf8flzX/3adWlGljgj5bVrMB8GA1UdIwQY +MBaAFBXYaQsMqXFjQGgCuUjbQN1WXFWnMA0GCSqGSIb3DQEBCwUAA4ICAQC2clOI +bOzg183dVNRvEyDVO7gv4S+6QrJ2/iebtbll5swyshv62hXHl8mWm+HkFmONTL7e +QTPryP9K67HcpL2fGRG8tfUpDsR8Zqc21K6w15MX2HHb6+0t5l74OiPZ2IwfCKl5 +IF5N9Cpq6vWtWeonWhrR22P25c2ZWyYbGrxCroxiulKjiDwzo8IHo12dDo4YkCbv +O5FNdr94HVxIe+FvIOeV0MFmryl0mwXcZGH2/j3PnnZzKBwC8cibpTdqjNGvdUWB +k68PxuZIcZ1JnYW/3/hlWuW+qdbmaUz0ILlIWmWaKdOAC2NVLeUr8WRemlH0o0BI +/Hp3eqyxYEIlPqPZnUZ7C9NC605OrFD8rfXxj33Q7ryYOjqbHeNpG9gM3e76h74j +msJ2lSpWKRXRYccaYbwSZwr7B87e9CCmwBxc4rwTr9kdT1tke54ZdrpyYBdHcWzl +dPA0NOlVnfKkMaGDQDa6qOHTBK+ZmiCWdL6gTC8WD5ZWB/c3AOWjkxfIHM3QHwFZ +R0jU6WTM72sYT/X+T12FcKISSYVGyUXda2h1Iu1hKm+vySib0sbJO/YRKSxmg+BC +ORq6Gi/pNvOmJEDqtcRlhdKdJUyOun76tWii1dxTMYN/RG6gsFjQEv76eFeWe4Cu +tJ6FNJaZ3Nt9J7zORs0LIybpKrBHdkAAONSLIA== -----END CERTIFICATE----- `; +export const mock_csca_sha256_rsa_3_4096 = `-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIUFZ+ysloEQSU7LBX24q+o4/HtpucwDQYJKoZIhvcNAQEL +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMjAxMDA3NDBaFw0yNjAx +MjAxMDA3NDBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIgMA0GCSqGSIb3DQEB +AQUAA4ICDQAwggIIAoICAQDF9AMk5T+2bSJHhe5T1dQApTAnqVNAN5+JXAP3xx1A +Fr/3i/4W1sXT5IEaou0Y4onDcsExgSr8LwMo0IXNb8c5mI1i7NrnRUWLluKmer3x +qMSEgJlRUH4ocPfO/zbbc4dwgRXO2W7aRMuEsvbRSQrFs+agYLJshmNKFV7c7rZO +5yI0QItsnHtgjfrcZWwmiKLirMLfTrbVOqk+ItiZKOKQEmLB6EJwpPRxRp+PExQ+ +WYqiL3mKLfalBFAlOOhd6JlBy+7+qoYAHGvh1XHAIK+xEi97A6ocx+CrpemYeyhA +MYZiM395sonArf6+qM1pbZte140TeDoZWj2W0TaZb1Us0COa539uurYkzmoB1bc0 +dH+6BGAlQUH7JPDnrksZERvd2KRflOYh34lMqePaTC4rQp2S3Oxyrs8+GAtIC9xQ +RXpLZA45SZZMQJe8aHE1o9SUoE3RXRR+lAQ2cncIioXlSv7LC9XShR69oFYhDx+F +rV6ry1tVy/ECy0nxNTlms3MaIcY4PX8+ncZXY9GSzsXQQV33GcWgHmmRz2BjXanK +jU1Fj4BhKATRCo5GgnhwXnAMnd8GQysOZ1HB6hCmwGycQ0WPWe0DBsrLvA5i+fyQ +txUeQVJC4oQECNu/Ro8+f+gXhn6jFYLaVGvyw3PB2OHKv3kLpv3szQ4mBm6bAGGD +HwIBA6NTMFEwHQYDVR0OBBYEFBXYaQsMqXFjQGgCuUjbQN1WXFWnMB8GA1UdIwQY +MBaAFBXYaQsMqXFjQGgCuUjbQN1WXFWnMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI +hvcNAQELBQADggIBAK1l2dweL110bW6yOjmBBufURU+SsrSolSjkdERY33K3u3fP +M0vbnib6PgnjQvL4ndEKVew444NSGoz7YRTvWlDna7emvjUsFjBmK0EO0SkxR+g7 +zxhAGFITj4x00FYGdFbqY7OSXhKpHJwXr/OJcXslVKni9INwCPcuK7kAzCEUoExF +Zo7AmABqq+cpgvY6HNXa+VsKHXl8kmAn1B+1L7z0sdsre7FeqAAUi62RBjuVDuvE +6S+hZNCXXgGMV3Q05h3Sala/7pWq6IYW162vuCTmIQn0HvFzUD3cVDOgiPbR25yd +kSrYJ0GNyypPgGdczzT8AUixk3pMU4ca9Wdk7r4KURJCmLvp0twH1gtJUKqm3SE0 +3q2gZKLOde2shbnyzXqvxGFalznVNfk5uo5pKMRcsi9Vo+InUYgA16OI1uAMO1De +JKC9StJFkf3i5NY8Wjb5XHLV5pWr/JZJU3d+jGIR89iu2JjqqBFiQ+ny1X4ZqSXa +1g23J0jpHKIR9BXTJaUoQiUALTbcK3/PVjaQqTQlU83EzM4UKKEC2/dkoRiiyX2x +NHm1s1pHIlUBzsonRNqcfppC00gW83dQOeWc/QWTD8oQCNRRVdst7jEv8VHZaTYC +TZo0tAAn4DI3SP2nAyZ9fqiaT7mTVfaTJm2GP3pCxzLsyXyk6LnkUSgTBSRi +-----END CERTIFICATE-----`; + +export const mock_dsc_sha384_rsa_65537_4096 = `-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIUG9zhSp11Fnjhq4WGwbPRF3ukWxgwDQYJKoZIhvcNAQEM +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMDkxMzE0NTNaFw0yNTAy +MDgxMzE0NTNaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCbwq+1mZQaFdr6R7i65hama46ovR25l+MCh/75V1+H +CQ3i2uO4WZkA9i46IeZ6f1R3Rj9aGeOtv8ei3pPdnxi3QcwzKYGF0ts0V4Jdm/NT +9kPpL3/41rcVUQZ4Sf2rndwD+O6Srkow63PQpQM1gYSADvfrnmPTXxWNi41DATjg +IXZhrO+nqU8Xw3s44eWEgWa0KfDD/3vC9zpD/sxvdE5hcs5F3dzm4KgL84bz/SAi +nbnMFigcoEIO8yGDb7Jy10qtXEh0b3MP+4H5m6o32j/a06uNRMAWeSVkX7Ii1uKb +zC1kpxJ3uyZ+kqIw3h2O2SkZ+jQpa+n3JPpadDCth7k7zCQLO7LdPiIHH7MtBbpX +0HjiVs1yA6FLnZhFmoXIGQvFapGIijCWEZanf8BK7EKBWjut+2By6sW/z6a1935x ++/EBLGmNSpE98Wl5wHo4sXMswapggISqk5ZwitBIitOnubfZxmyTmh/JExD6YgUw +oVjdxAYWknJgUMUeiWQi3otPCIWuvGzjMGrhw8b9B74IzRonJLUVg3vrXYEk9CFF +J3ZXwnyLu0egqIGTORyu2o7weibRuPISZiPQDTjkBe/YbmHJkcYNoSmoi2uTFvc7 +PZgGDhNX9YenxGOTIfhIc8EA4aSTpHom6IcUvFSjDhDH3j4mp058HGElWhOw5gjb +AwIDAQABo0IwQDAdBgNVHQ4EFgQUI/50hLdRVIaboz5XjttVepYFeDMwHwYDVR0j +BBgwFoAUANkk2CjjyuP4mPBTU7UaXA+8+d4wDQYJKoZIhvcNAQEMBQADggIBAIjV +GrqlDdfnUSj+EFsTXWZDpPREe3WPfdkkTwsp8keqoAT8++Y5GNpsFVDsxe0pQ5O5 +Ba7UxerP8l0/5i9UVmiDYVrI38gyxrqOui3SbpD7jkj+zBDSBN1qXsKaRHWhWGzE +Y4dGzJR172xTB5lhbb1s5m2uZUYI9OED7rz1/fXyq4GSC5vuu/Cnwo1pb6oXPqFi +kJ2fU/9n1ucITQlyiCbxMGYHNVMdNstJActU54VL1NID6XplWZPjAmsCj2zFtoZx +aBrO2f5Iz0Nx3h4vLsEDaqOSXzjYkjEL5YJIUkLg2G7TuyagePBNMkyoP0w79PpK +AwKUUTqRvcX53O8AKtkTkTP2GJh57Qn3p0cDHqnaajIrU+Xzr2vi6p1feBkPgUVD +S1/cSQB4gJfNxhqCAJUtlr4gx1JJ/+PeLK6VjwUOurImg6wVbNZe/Ld0RqHO8S/P +vqPYHCSt7h5HcVPinnRTapdT4hBOQZvHALtEjKBkh75XZGcix12w5sjcxnb/GaYn ++nmpL6IoG/T5x0uVpDYLUwGqH3hgwBhzif/quLsnIsaM/wJfh/neQrLquwCiUQaR +L/OwCxhceHlK4at6G1ejPS2HETw+cIkHHvL4w3QojvxV2FcTtevGnskIBHaT2b0R +p8VLEFO8l28fqBPGSoK2IWrgG6Y2NLbdxFBjMddX +-----END CERTIFICATE-----`; + +export const mock_csca_sha384_rsa_65537_4096 = `-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIUeJuxzJTP2lTrmy+WyYua+hlvgGcwDQYJKoZIhvcNAQEM +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMDkxMzE0MzZaFw0yNjAx +MDkxMzE0MzZaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQDfm1vGl4HEW8p3ORO5TRKOETnfkGAvevoD32Z5bf6+ +VWEOo+MlWGoFIi8tZV8RH1sTTM8khRXjPUvlmP395gthRB/YGtX/0JRw8kXRCcjU +voeVACstas92L85u/lFk3e+WLybhk67ozmqltW/N07E9PuRaXyJqMFrjKMDqoskQ +o87cofPwO5J+QROvfLHkfut8pqwG8erzqm6ySaN8CFOTqpRSM1/7MXlBUyGjXZM7 +xlagrb1crN/zZ2+73lx7fT0Gbh9f0scH34ITJAhST2nu5yvnh+I96DQq27jYf1nm +u8jx16JHHDHtKh0N1LNzKGJZviD5pZAJIz8SrSgquU5ZNXebN9y2/7p7/P4rQ7Yr +3fQx82QTmrxC9jGnyRWniOnmyVVkcwRk1FJVuTB4Mrv81oXBjvUuGEeVT1PfCn5S +1vepb5EEEh9oya5KB9SbJ4o7+mu3IlqR+Htf+GBZZGaW4Fx942zL8uvKqo9oeKXG +SRuW701MBhuIrvV4+Os8Qq9wEd6lvSgXiJzThk37rN+B6qN9Tjmmwp+OJGm8uwEI +JAKv57YZOQdDCbhlxRjdaX+6Vb6JrLFaKiGiGXNvtR3ZE7IxiuckJ/D3dNtRCTxm +4OTdrmy2oe9KbGgHa/wAO/DZnsdLBNmmR4hgROhHiSYzQMl7gj2lbDqUwib3rQN2 +UQIDAQABo1MwUTAdBgNVHQ4EFgQUANkk2CjjyuP4mPBTU7UaXA+8+d4wHwYDVR0j +BBgwFoAUANkk2CjjyuP4mPBTU7UaXA+8+d4wDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQwFAAOCAgEApUKKAdbpccPreqQtprP8x80azBgOcCTywpttKsrVWTXg +6iwp0WSSM1Sr3WwYg4VjBdsn9TSoUWTygcajC8ee46wJBTaTI5bbSIZroLJ9LHQj +H64xxPura34qtRkOVFV9r5lin+tMwyW8lEjDidpZ9wWMSMaGg81/H4nmzVfDYKpx +FNKLq8VeuK3THY0BkxygTsW6rQN96HnHhWqjYQKAXGcNx5pcV8w1S9jTJp0CDOhd +5SswYleGnT3o1c8GVcJobMIeFnQ0hNa48jKywJPuHOUN5bJgXK3f0XUh0KGlDfU8 +VMVmwqmnuLwFARktpN5ca+BR7KddD0z6idzeT2EIa6nlr7XzTeZxqkWHL1y71HaO +Fv333GhjFDgZOK7Hm//2coUIaGiiBL1a9gs+6LtqTLiTWX8mHLEvBEJgbPecR/Ro +Wz+w995gZdaPIPQGnvR9qAJQcE9MH8fZSNXk46lf2JO9fLjdPS1UNx7OvwmX+fcm +2g2oRbiUH9rtFqkfDVLvN7fBQkfY4GX+4ZFPUPAlJz+cRuK3zjZaiwIniO/CUpV1 +XJX9aCQt4gCWYUFkrgku2jhyIGRxh7mHD025O+9Z67lnyKXbzr2aB4BZ1JVt1hwf +w/XTtHicQ/8AD2iokIzFUVKGUyBYCZMhcbltCNII56RDvwB3v8jKk6cfePK5/7Y= +-----END CERTIFICATE-----`; + export const mock_dsc_key_sha512_rsa_65537_4096 = `-----BEGIN PRIVATE KEY----- MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQDYE46jsM/etoGW VivGf6TE2TF+NXMpMn1uCP80BbeHqsCN0+axX/guEkcR7KyFf7x4cQtLGzvT4UeD @@ -1749,40 +1907,70 @@ kzynFPdnN3N/J/NuvOk1zniXvuOE7PgDjEuGAt0d8i4y42Yal/SDMzf5qFt32ge6 `; export const mock_dsc_sha512_rsa_65537_4096 = `-----BEGIN CERTIFICATE----- -MIIFpzCCA4+gAwIBAgIUbF0yyV/2z6BHATd9xXIi1a30aTEwDQYJKoZIhvcNAQEN -BQAwSTELMAkGA1UEBhMCSlAxEjAQBgNVBAoMCU1vY2sgQ1NDQTESMBAGA1UECwwJ -TW9jayBVbml0MRIwEAYDVQQDDAlNb2NrIENTQ0EwHhcNMjUwMTEwMTU1ODIxWhcN -MzAwMTA5MTU1ODIxWjBWMQswCQYDVQQGEwJKUDERMA8GA1UECgwITW9jayBEU0Mx -EjAQBgNVBAsMCU1vY2sgVW5pdDEgMB4GA1UEAwwXTW9jayBEU0MgU0hBNTEyIFJT -QTIwNDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDYE46jsM/etoGW -VivGf6TE2TF+NXMpMn1uCP80BbeHqsCN0+axX/guEkcR7KyFf7x4cQtLGzvT4UeD -uMMhRbU6EdDdwT5vMG1k+F0LkKg+U1j3uXYwtV8pBe9eTxsTNc3KM4VmyppTpmhW -H0e10iuc7LPi7wveiY+McjFhneYdF6nQe0kbRnSOt+soRdRsTkEnQJc5exM1iCVT -dKpCpWIA5ZLphhgdkNSk9Mz36W27iVm8UUFcaWT1q8w02NJ/XNjqQCPVjjijW6wU -kW8phmT6NGPS6bCjOXFaUETBL7Ztm2JIayKQnipEwcXXFGBnyltENIvvOD4aQNdh -tx0sGkCktY12vTBCaSqk2ak62xsGaf2d7yz0OoT2V5Nq4r15SgC2cMAiFTCewh7Q -q4iwRlrjYEOYEVGdwSiAjrdR3e48h9Ku7ea5LS4LZ/gpVQ8czGAWfI4/BT5ht06j -WXsFPC8pU2paiF5Vsbp9SpBnMhdKKCE3XQ6giRQFJCjrrSpzAdGxoyjjMmeeOd1k -rb+P0g7gBuyHamx3jFHaVnRjFlV2jhlahYp+d2x1NoHRiukU3iaHCdIT7NbCBVbV -07PtRaaSRrjEsKIt2X9KOLqOj+lWbf4panGpjCgsg6tTPQwblB1f09YBF/kYeMZA -c8qZjD91HWjCLwqKuNMneG1UQLdBzwIDAQABo3oweDAMBgNVHRMBAf8EAjAAMA4G -A1UdDwEB/wQEAwIHgDAYBgNVHSUBAf8EDjAMBgorBgEEAYI3CgMMMB0GA1UdDgQW -BBS12uQmqML59he3UH/FrAhV5viq5DAfBgNVHSMEGDAWgBTeRYNk3lWFO5usuf46 -MPYdPe0jcjANBgkqhkiG9w0BAQ0FAAOCAgEAae+/U4d20YD8WKynj6ZZ2ycmtjLa -J/tcYbuLQ4Sm0yWuH4PZuWHvNMLAt86CbFYxUx2m2YACOeFx+8Uy9kulW+i/prGK -ptNyKQe7qCHQyT51ZBFQ8KGdSKJqT37RWpPDCbSw4p4vsW4fuLzRPoz1XAklJNz7 -2KR/yBe9cY+TQfiVqsbUGrZ7HedoUAuvlomE4lh2+ub+GiW5WClAKUaSy3WGYrIj -G+VSrs0cx8YBZ8/Rwjb4oeqmat0gBm3bXeChyT8snQwHjvMNhGq1Gm9mVxnhMwH9 -a+L0WJv8dg1IutivcURli97CJKW5CwXj6TkeyPsTLBwZLgkPxVOnGAVYC+KZIcNm -xs/tGXj9267wVGyjxIN0ir/stXGRa1fecZUbQOhivQBuasWgLW+fT9tbf9mW6H5U -7lWN5udDXdZMSxR6j2FLSJM61vpBDzNSdLp303g6ZPZ7KcapABJ0Rc26w8uLA7SR -3CoFYVwv8fvePtcpnmNJJBBCcYPoYQImK/egrRP/2itQ0rKrQ5bfjf93lPBCw44X -RguFdjhoHMVLuwUE8cDSa++8SJYaEt+hz4maeFJSPNcmjLtMj6sh6fN18a6tn8ot -TyD3WNptht093KKhpBzjSnsQfHyZy0kZv1ExLrHOHAZeLiD+0EYWATPhEBaE47Eg -j9Sia6tiYeI4rSQ= +MIIFWjCCA0KgAwIBAgIUR49L21BK7nDTZftv6xtX7ysh+MkwDQYJKoZIhvcNAQEN +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMDkxNDQ1MjlaFw0yNTAy +MDgxNDQ1MjlaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQChWscTQn6w0HRALzgLUaWvZAzwovjx8A2em3PY7eCk +kpHM1biDx1YxHsI/jDBP6R4HCoRzGA6m4NO5D261YldDumlEFStwUs5W/Aurs59o +6vl9pulHgK/UvcWvwYOUnmxLmyF9ICztcUK85duNrqAs/3yNHgkmqVOa+o3JlKwE +m3ESyOtu1piPO6+zbVE+OFy3W38PYjYElXTpNY7X/5z7MR/F12XM96frYHuqtJW1 +sfK2VtRNXWC+5vvP1Z3IljRFJHQk18R0dstq1Bcr5zFb6VBkMxvScKriEZ03vvVU +E0UaPN/j6gPMZ7eOOQ8hvDtvrfe31X2uyu3wDaU2u1kv/xu/sgDHC5xvZCkfPkMm +vzU0ajUyoq3+Eps3Ihor1fiIA+Z0qY1d74nLzLGa3h1T9lHN9r86DSC5ZdybsI0Q +6htXKoQuc+r6mJOtnPtYewbfqv/uBt6rtQQ/pAA1w7tzDVbiJ2yPcgUpeQx3aROa +4k2IwQtLxTCoLNbwPH0qsiLsCxFPs70uJlA8rc1xElhfVzfkcnheUF1JYKX0oWQS +IP/mNua2z1RMCivCowRKT1LVk6pqlYTE+Mn3pZ7CuJevQJLG5t2P8kvGVhTZT3im +JWUZr8ZrTfTdPIH/H5rLQCP8QWDc4Ky0P+j2cWryDjTLpwB4MlMqGpn4b/nsCORB ++QIDAQABo0IwQDAdBgNVHQ4EFgQU9H2TT3TyuogNBSy60NSRGatCT4swHwYDVR0j +BBgwFoAUV89v6EXR8fbV8ZDW28FXPHEt0i8wDQYJKoZIhvcNAQENBQADggIBACRu +qnASX5kJX762xONJ3Hhz5IpNUV7XED4pFhvfsRFgPKZtGXa7mi6HgQ4DM1KS69ad ++WO1DIeoyTWL5p7wf23Ie4GOjtugRiq1KT7BjKrEPZMCeG4h6P3XpQE9chc4/f68 +bKVx6paILe2eE2E0y6P7l9XOywSkdl70UKBDm2eyLBK8seU7Ck/GiqNpM1dsGY0a +XoHUU5tLRfcYo19c1gZVKRcTUGtAVSLRKnbdk2c9+9VXUi85UPMb16wTNY0O46Ee +0aAFekcXH451DB2ueMzAbRwVAySEVqj64j4e+SiaZlFcp3sKi8yP0s8ChCOnMCi2 +wBNcRn9vGokjIsB9UD0Gf04wigHZcM2AB02tVuUiYkIcPEGqm/NHzhFVn+ib1IxS +rPNxdiY8+ZCOETbryLiHQRQVCRfU53nafJ/qkZNblsKqXE9zaH1pjTbj82xf7AKb +jURSXLlMC7F9xGNWU+krddU+hys5bClxgFaQrQ01KnySURgww/v5nZjKAYk/L8IK +IAWkn0cLXW5aB5pRB2zQoD365xlI75D34wPpuLzsdJPZL2fFyPkbr7S4mSCQ+hIT +lTa5ZaR6SxMJHij8f7lql4QCYqhrsXLk2T2cDHAoRCgj7RDNYsLIoXoDtm1vg6Cp +CEPfXvdo08mSP/DvSsDjMz05zyfUzZoLxis047qB -----END CERTIFICATE----- `; +export const mock_csca_sha512_rsa_65537_4096 = `-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIUPz7c9K8GCz4jniW5VVCaDtOrAL8wDQYJKoZIhvcNAQEN +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMDkxNDQ1MDNaFw0yNjAx +MDkxNDQ1MDNaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQDVFPLGluHXqyiBo04jP+VgM+Sgk21grrtBCTLBCCDB +2WcHWj+nXRbSk5i/tnmQgDUY++qg+bD5UzLEiufyDyi6tbTUGvuXOneHHNTt1iNr +xm9oj3fxH1FXwbCc0BjcyO+Zaz3f56UxDRbBQJtE6DO0cCI2FRrPTLfjbaRO7JZw +Pojd0+8IQyY6iiUuBosk1UCa1zpjoPWX79Bxf4JSTF47u8/y6pvetNW5CnuBGzf4 +4UuAINaTaqjg6t9Iy0wOPC51A57yZgg40COr8kBTmSdwD+UmuYiNC7fKvFNosiKJ +rMbd/YT8Za1KHRi9RMe4DIn0/MSk5gVFZXpgxpqe+1C6fTKbkA6gFKsY8h/eA49m +imVqgDTRCF8BWw1FFiKa3q2mROr3y6TqOlIsmsqKHOEgaiAVM7THNICGiPWCcIrh +DqeMuSjKEqSNMLdU8mYgpcPOQuaWwISIO4VgTpSWTRo+d3vvhpTEKd0GDUy6drWu +FHvfmbkQiZbYbzoCf75vhYcYCxKtthLTLLFYFKeve5IxbRkx0/OIdUK5aYeSOyhn +HL+32icgWnbp7pNmq7R0VurmKvg0x0vF2G+PeBN9EIYI6JhRVLkmRvuNCf57f50t +64TgThE0UhCRsH0a/Lyzl6PCZ9shiqblXgucF4ANz6nUoTzzno3XXThroroSt0Cz +RwIDAQABo1MwUTAdBgNVHQ4EFgQUV89v6EXR8fbV8ZDW28FXPHEt0i8wHwYDVR0j +BBgwFoAUV89v6EXR8fbV8ZDW28FXPHEt0i8wDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQ0FAAOCAgEAt8DVWwOgOAsG9aganHCb4/h/2fNMYD1fAUScGVlwCzbs +XaWm3PoGRVwM9nh8LSpJ9fi8aicSqaFU1wiN2kf/YRO2nzt9l8wuqfyriu91TenN +zRExtGaXYZmsB8kCo/pN0VBM48OP9wxV7rejCHhohSrYnvDl0EK3cSfcvTY2xC61 +Po1kZInD7cOXL+iQc27e8bmQ2xawnTL78jHneVDre2ZShMcEED220fIOIu9TYL5e +cEafPxO1SRRgABLgPchRHCs+sHMIdPjyym3n4HLGk6ORcY2WwhNdBtxQoIbTwrjX +Jr+aNyH9bQQ6Vf+F/DAIqUph5g5+AiJgezU2KhYG+qgb+6rtjHtcMpMrkDGW6pNl +QcL4O/yvfNFQLfy+oN9BM35Az8SnXsDV+Ou5hTK0ICHOsXnTwz9EWliolauf7asP +tea7m8tJsko+04nKmGg2zkgCVEtqeLwFsNLL+UaGnj8A7AxPyt6PzHReRJDcP83e +086xdTbmKI1Lno9ZoIebzlBV1u2I2tnj/CoMVgfZnFVSmmHerka7KlqKV5xsoeX6 +3/sx9kjzFyZ5CeGgyv0oIGgPHAg9twAeYbdb2Kr+ZAuTI4Xn/59iWvDtZyY3l3wd +Es7c7TRmFjwtpuiGpa6n1PSG75XJps18jhgt6Xpok/xttk7x+SNIwMKUQrbK+hA= +-----END CERTIFICATE-----`; + export const mock_dsc_key_sha512_rsa_65537_2048 = `-----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDSvKqw2u9u4+Qz uhrJ2+o41eonPWAD1SodMORJVecATSjRb+HpYYBrcV7AB8AmmTKwYfkbugEUspnJ diff --git a/common/src/constants/skiPem.ts b/common/src/constants/skiPem.ts index 621e09fc..661ec456 100644 --- a/common/src/constants/skiPem.ts +++ b/common/src/constants/skiPem.ts @@ -17,6 +17,16 @@ export const SKI_PEM_DEV = { 'MIIFbzCCAyOgAwIBAgIUcPyz9NNu9cv8bmvhreKdo5w6JhcwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMBQxEjAQBgNVBAMMCU1vY2sgQ1NDQTAeFw0yNDA2MjkxNTQzNTBaFw0zNDA2MjcxNTQzNTBaMBQxEjAQBgNVBAMMCU1vY2sgQ1NDQTCCAiAwCwYJKoZIhvcNAQEKA4ICDwAwggIKAoICAQDHnCloSc6AwW4YfCOBdKp0PbsGy3bykmWYHakCjGPbGeaKIrHIuJBjJb0QF0wmGgtkgTKLQtRwClDxKg9y9vru90gZzZ/o729McC7xGLq7S137By1hRPMqtJjYQTDrC33Wq0IwI+c3U11+TcS3fosJ9mLBmGkT69eO9nZ4wAHo0oyK0x/OxpEsVimJFyWiYBFmHK/rxwFP0cybpg1U0If8TGf5R0fBTpGzUxbtqf1FRDMPSOYwF+hvCyyqC7uIe9mB/0HAAHx6DxcXoxiOQFFvFJ855aTIB+lNngLjA+AV8qiA7TIBbSJNYQIrNxoKO570t8UkvQ1gMJKbzuZZqCxxYHYs88/l27BQ4Et8yViszMLVLljtIIK1falI96iXavoIJwzu26skb0B4koTzhISQNiqrcq3ZGmR8Q4YBOOjtgHsmZnvFiTq6XmbUVsGECLNvQj9Afflt/KY200bLpumVVtMshW30tT4lUPOCyKEMbGPR2znowm8qlS7heQ0MK//mpz2CcYn/OsXiWti/6pLmfgCy/k48NCUX5jOVpuoQCm6dLp5Rxe+cHSw/btcI3yu4FxuunSh9OQF6dYd+dZAvEahrD23O/+g68B92Y/Gdd3H/6/nYZdL2VbT5CAA4F/GMBlqSXaIp/I8zMjkbrMgIBbFXAwmSS++rEu03ldtSIQIDAQABo1MwUTAdBgNVHQ4EFgQUPKXfRIsfGKkfqmZMJiHriBUBfbswHwYDVR0jBBgwFoAUPKXfRIsfGKkfqmZMJiHriBUBfbswDwYDVR0TAQH/BAUwAwEB/zBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASADggIBABZ/KiLl6XqJugAXXFrsOQ0DKsa/Hc1oQO2thZWlk5zr7/i8OH1Jh+uPdOFAYEx0Oa/w0xVYfn7j/QR+VDdlycAQ5tdStP8nUp5QZwG9x90SUZ7jl2Cab+qGHNH+cZFQve+ArH3l+vc2aMYgzYEmk5GokRWXVcIb/2m2vD4Z2S86RRhyfpb1M7Oo1OrdySdLJdTa9DVlOwfwlnHBfI1/Vqx/Jt8EZ+GMVHXj41IZTedFFKiSpe37mWBEEHG+h/fFgi2Txh8OIEZoUDJWynatFJbRwsVdwZnXlbhnLB4g68L9fIrwpTdDjV+y02pgyKkGojxvhduV279Det9G+vH+i+qicIbJAbj7hJ6LmYdtxPnlMfH3dcSxAvUoreNC4xhCKArhySgjHNI5gJ6Yk5XNxLrj7N4+N2wx4z35NkARnY63+meescNm8peF6pNYsJjFAbKuAyIuw8rAUC8hr75xGdnBgBgjD71m5AMnogbfJrurbPjiZ+f+ie/WAI730Mo3OOKnv6z+6qIPr4KqM9MOpECp9u8J0VcWhIDCrYheZOhjTvvbwLrq4Smh8iH6C20IZFK5Je//SOkolBvsRh6ToQoJerR1lWGVlX4ljN8o9g5hp1KC7Fe25/7Ga14YFAjrXIeRp59zpNCkX4swvUQiSYM4BQTsaNmBEvQQnlT+9OCw', d86981b4fde9451fd9fda6c4319c845c3cb2a56a: 'MIIFCTCCAvGgAwIBAgIUU3HXu3HEmJlh+Cqpae1jkw1k5GAwDQYJKoZIhvcNAQELBQAwFDESMBAGA1UEAwwJTW9jayBDU0NBMB4XDTI1MDEwNTEyMTIxMFoXDTM1MDEwMzEyMTIxMFowFDESMBAGA1UEAwwJTW9jayBDU0NBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0m44QfCCuLqxmMJaBfmDK3OdXKN3eNJiB/fcJkTtMinrbeXJgs0GXyS2HJF3LEw5s9yQQlQ+Va6B5+TOWoPdT/pOTJkd6i8/61pkqWZl2CPmAglmn50kAb4MFkJlz0/JJg9aFPw8FBITKf+v2GVd3FZV3Tk7ADzJeOaaBsfEaAg2Q/XFwavDDrfAOhQL0gzrJuiSUwywPt1j6R3imY6Ba2bss0byjddaHdVaKgXJL2pJnKXowrB/Q8mDN2NcGgQrGVDU+kUPz3Rq7YkUg0VEzg1PkqgW1pGMnYpLMkUQXBKlWbsVudmEHKP3ENessZzrB/jbN8SkNv5bZINKx7YzCR6129FX1rpVQ7k8eBt32BG+8h2gq3mYt4zf3Ge1ii2StnHryjC/XXC/50lhNfHEElT96PaoYhdzdGM5Ao8+NJxiBRgvE6uTQjGqkIg4qdsHLt2G4FLpV+ieSbSbSTNvR3eY+lJDduCnBbqJhjoiTtAfw1bSYL06D+gvS1QCqBMGj8dBqGvoI8K0OJYUmkJWBA6MjLKWtRoI0bjOyONWWWjDHdcHZlYaAN3nfgDNDEsJMnvG/iVWTpOpGd9q9tkfBaYbZVTEUMWY0ME6rtyczr3c++ix6TIt6hbTFdqmqWgOVBZxHjnNgcw3HMDgnwGCYp4J8BGqVuuw5eTU3Rqy37cCAwEAAaNTMFEwHQYDVR0OBBYEFNhpgbT96UUf2f2mxDGchFw8sqVqMB8GA1UdIwQYMBaAFNhpgbT96UUf2f2mxDGchFw8sqVqMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIBAFZogQWujEVZa10UDxM1R8JBxgtzkFDn2SqkxZv9ht1Ux4BH4EUpFgeRJoOvV9+j4oMGZFfPkaoszbyXhnwHRwlwIbBOXHjS7GJNQI5yMjD+BApAf56bW/jZ+Sk7xEATQyLDllE9e9YXAsTQ8OsWSdJom4Ka7x3TVKHzqtySzlY8SJaEmnaZ3TZmGNH8azzt9imlZuRbJQdAI28RQChAMLQM80NXHJTneV5Maeo+fQjyB4UvhaRDgNreIarPLuuaVsKnPPcPOiZfzqeAeJEaEGwYORrYWrQERqNvcvOW7bAh/JoOfSTPdgtx3lXcUhgulqseTdddbeCkvmHgbCEjzh7SqFDRdUuL3gNs4fAE9K7z9sA5g7F2q9kgYDO0b/KvKCh9eWlnotEHd67VMeoCDF183vy0ALeYxdGamt3wuglLUX5vLhwZ70IzHTHnQ9ctQTQ6dohcgwK4wr0NjhEjC7OAHMRfeF5FQH01Dfs0F7c4gJ6NHjLmTmceeabvy/LJBlDKrDUg34kEbZ9b+oJoBqld/9pzy22KmMGhj+MB1yfByZnAwjk9oocrgBncj+s5AtyWy01BGZwmW72WotCdLHnWV+FIJ5ad7hFUFjHD08GnvqVxciIgYucmJXri1zIirhnetggSH66eDxeZqxWvxCja9rfOotpVCfdcBmugymgH', + '34f60370629d4d692e1fe2ee07a953b5b423fd9b': + `-----BEGIN CERTIFICATE-----\nMIIFaTCCA1GgAwIBAgIUB/B2jAj+dq2ixSRYqxgfo+n1o+QwDQYJKoZIhvcNAQEF\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMDgxNzI0MDhaFw0yNjAx\nMDgxNzI0MDhaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIgMA0GCSqGSIb3DQEB\nAQUAA4ICDQAwggIIAoICAQC1vqwljH1v73dJ1Z7wgrQqwXzEPmQxirOUQyDUI5zp\ntamZAzjYdnY9HhRZe1ZXeBcSTs7/DgPSnZibr6DvQGwrgTBRC3KkOX1tiZsL1Txe\nOkNR5yfRfdbzV3qUlzP8qbO6oR6ukVHf9NS5EheQQo+PqYz2kITyJ7EoKiLjHnoj\nQ6edhDCng4a3zr1iC4X+i/ks+MKJbw7HXHbqE+qRG+/zBlTzogN+DswLCt/A6a+t\nv8lf0nbIDqtQl3CcpPLQkvc9Uc9Z0QT1zfSWpzlD4NqrPFeZx64fUtHyWr35+yZ+\npnhhZTEsDh7VExzqfh5c3bYGBIJJhi2On5axyXke3EQfLPMUxDpngEvtx/UCnhtF\ncmTOkWJ0QAEgjwtG52cE4s+/uAmBxolPkbQ8vMhOnf2Y8WPM8NHMhS1dx9JrQlYT\nd2qW65lQN1ETCN4QzFNbCS89R3hJYvnruHihxBtlrjoKh7YrnOKeiJ3FfcPzmKIQ\nqzbckzlauaopVn9mF7Rarf8x1+Q5aXFEr33NBciCX7M3O+3DHiPbjxNqNTtRfcrV\nVjn8qCrMNpYcmL8pFpaSPsVGmchZBLiKaku+NUkL1aPg/PI2/QHc7MBySLj2yyIF\npx/Yf/G5dXOthFPfh3pIQ1qYWmPpJOLRlD/1hoD1hrpfWrvL4jOsvTiasNbcmfsF\nsQIBA6NTMFEwHQYDVR0OBBYEFDT2A3BinU1pLh/i7gepU7W0I/2bMB8GA1UdIwQY\nMBaAFDT2A3BinU1pLh/i7gepU7W0I/2bMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI\nhvcNAQEFBQADggIBAGTkZ0/WpcCJcIrbTYEjA1/c36HSEIL2laK9Nbicnlm1ArnJ\n3EBI2WzMw5cEs7QCeGnFZLL/QHCYvc+0K6KXeyMQtwK/4TG1QI/Z3gvqseApKYXi\n8gkxUYCJcP1tOCXCPRHs769dl2yE0U0h5QgSErn2LD2szZLv52lLm3ym0OnJfSV1\n1Q3AEeW5bRVoxqbV8pa8ASsv0WCYtbJ7VjU+zRnDePjbMD3VPlQK/H2LXedy4zDP\ndEofORYgLBvFIEiHxQk0CIjO3x15uFF1KnbrkuQA0bXhwsoTw16fEyTNvnXN3z/5\n8qFeFqGdoi+6WdQRThoOcUY1BK6GP0o6TOUbmdQIunB5r8kMPyxWqim/vY8JUnHW\nGkSFxIWvs0cgyeagVWb8MfcYGh/E2ac7StcNXq6908gl2Cmltrl0i8Oiy0UZQQXc\nfw15zfjXVu447KURZRX8839OFTOghwUP3c95P5AYGsqdgF6NSSg5AGTpKfTOhX9G\nihL8cvCBzk8T4Kjo2Hu7aY/QFkePf9L+zVKDokhdiTs+euO4APhGLaZJJ8sD61jS\nZBsTqeLlzl4sPikJHF0nfRaQ9FvptbXAXxycE+AltBrzP6deEtssI9PU+XMkRgKa\nEBh8eXOJN8jJfo8YsxzohQsS7n+0K2JYC27bgECSKtvof4oWjrFMExJUoZau\n-----END CERTIFICATE-----`, + '15d8690b0ca97163406802b948db40dd565c55a7': + `-----BEGIN CERTIFICATE-----\nMIIFaTCCA1GgAwIBAgIUFZ+ysloEQSU7LBX24q+o4/HtpucwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMjAxMDA3NDBaFw0yNjAx\nMjAxMDA3NDBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIgMA0GCSqGSIb3DQEB\nAQUAA4ICDQAwggIIAoICAQDF9AMk5T+2bSJHhe5T1dQApTAnqVNAN5+JXAP3xx1A\nFr/3i/4W1sXT5IEaou0Y4onDcsExgSr8LwMo0IXNb8c5mI1i7NrnRUWLluKmer3x\nqMSEgJlRUH4ocPfO/zbbc4dwgRXO2W7aRMuEsvbRSQrFs+agYLJshmNKFV7c7rZO\n5yI0QItsnHtgjfrcZWwmiKLirMLfTrbVOqk+ItiZKOKQEmLB6EJwpPRxRp+PExQ+\nWYqiL3mKLfalBFAlOOhd6JlBy+7+qoYAHGvh1XHAIK+xEi97A6ocx+CrpemYeyhA\nMYZiM395sonArf6+qM1pbZte140TeDoZWj2W0TaZb1Us0COa539uurYkzmoB1bc0\ndH+6BGAlQUH7JPDnrksZERvd2KRflOYh34lMqePaTC4rQp2S3Oxyrs8+GAtIC9xQ\nRXpLZA45SZZMQJe8aHE1o9SUoE3RXRR+lAQ2cncIioXlSv7LC9XShR69oFYhDx+F\nrV6ry1tVy/ECy0nxNTlms3MaIcY4PX8+ncZXY9GSzsXQQV33GcWgHmmRz2BjXanK\njU1Fj4BhKATRCo5GgnhwXnAMnd8GQysOZ1HB6hCmwGycQ0WPWe0DBsrLvA5i+fyQ\ntxUeQVJC4oQECNu/Ro8+f+gXhn6jFYLaVGvyw3PB2OHKv3kLpv3szQ4mBm6bAGGD\nHwIBA6NTMFEwHQYDVR0OBBYEFBXYaQsMqXFjQGgCuUjbQN1WXFWnMB8GA1UdIwQY\nMBaAFBXYaQsMqXFjQGgCuUjbQN1WXFWnMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI\nhvcNAQELBQADggIBAK1l2dweL110bW6yOjmBBufURU+SsrSolSjkdERY33K3u3fP\nM0vbnib6PgnjQvL4ndEKVew444NSGoz7YRTvWlDna7emvjUsFjBmK0EO0SkxR+g7\nzxhAGFITj4x00FYGdFbqY7OSXhKpHJwXr/OJcXslVKni9INwCPcuK7kAzCEUoExF\nZo7AmABqq+cpgvY6HNXa+VsKHXl8kmAn1B+1L7z0sdsre7FeqAAUi62RBjuVDuvE\n6S+hZNCXXgGMV3Q05h3Sala/7pWq6IYW162vuCTmIQn0HvFzUD3cVDOgiPbR25yd\nkSrYJ0GNyypPgGdczzT8AUixk3pMU4ca9Wdk7r4KURJCmLvp0twH1gtJUKqm3SE0\n3q2gZKLOde2shbnyzXqvxGFalznVNfk5uo5pKMRcsi9Vo+InUYgA16OI1uAMO1De\nJKC9StJFkf3i5NY8Wjb5XHLV5pWr/JZJU3d+jGIR89iu2JjqqBFiQ+ny1X4ZqSXa\n1g23J0jpHKIR9BXTJaUoQiUALTbcK3/PVjaQqTQlU83EzM4UKKEC2/dkoRiiyX2x\nNHm1s1pHIlUBzsonRNqcfppC00gW83dQOeWc/QWTD8oQCNRRVdst7jEv8VHZaTYC\nTZo0tAAn4DI3SP2nAyZ9fqiaT7mTVfaTJm2GP3pCxzLsyXyk6LnkUSgTBSRi\n-----END CERTIFICATE-----`, + '00d924d828e3cae3f898f05353b51a5c0fbcf9de': + `-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUeJuxzJTP2lTrmy+WyYua+hlvgGcwDQYJKoZIhvcNAQEM\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMDkxMzE0MzZaFw0yNjAx\nMDkxMzE0MzZaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB\nAQUAA4ICDwAwggIKAoICAQDfm1vGl4HEW8p3ORO5TRKOETnfkGAvevoD32Z5bf6+\nVWEOo+MlWGoFIi8tZV8RH1sTTM8khRXjPUvlmP395gthRB/YGtX/0JRw8kXRCcjU\nvoeVACstas92L85u/lFk3e+WLybhk67ozmqltW/N07E9PuRaXyJqMFrjKMDqoskQ\no87cofPwO5J+QROvfLHkfut8pqwG8erzqm6ySaN8CFOTqpRSM1/7MXlBUyGjXZM7\nxlagrb1crN/zZ2+73lx7fT0Gbh9f0scH34ITJAhST2nu5yvnh+I96DQq27jYf1nm\nu8jx16JHHDHtKh0N1LNzKGJZviD5pZAJIz8SrSgquU5ZNXebN9y2/7p7/P4rQ7Yr\n3fQx82QTmrxC9jGnyRWniOnmyVVkcwRk1FJVuTB4Mrv81oXBjvUuGEeVT1PfCn5S\n1vepb5EEEh9oya5KB9SbJ4o7+mu3IlqR+Htf+GBZZGaW4Fx942zL8uvKqo9oeKXG\nSRuW701MBhuIrvV4+Os8Qq9wEd6lvSgXiJzThk37rN+B6qN9Tjmmwp+OJGm8uwEI\nJAKv57YZOQdDCbhlxRjdaX+6Vb6JrLFaKiGiGXNvtR3ZE7IxiuckJ/D3dNtRCTxm\n4OTdrmy2oe9KbGgHa/wAO/DZnsdLBNmmR4hgROhHiSYzQMl7gj2lbDqUwib3rQN2\nUQIDAQABo1MwUTAdBgNVHQ4EFgQUANkk2CjjyuP4mPBTU7UaXA+8+d4wHwYDVR0j\nBBgwFoAUANkk2CjjyuP4mPBTU7UaXA+8+d4wDwYDVR0TAQH/BAUwAwEB/zANBgkq\nhkiG9w0BAQwFAAOCAgEApUKKAdbpccPreqQtprP8x80azBgOcCTywpttKsrVWTXg\n6iwp0WSSM1Sr3WwYg4VjBdsn9TSoUWTygcajC8ee46wJBTaTI5bbSIZroLJ9LHQj\nH64xxPura34qtRkOVFV9r5lin+tMwyW8lEjDidpZ9wWMSMaGg81/H4nmzVfDYKpx\nFNKLq8VeuK3THY0BkxygTsW6rQN96HnHhWqjYQKAXGcNx5pcV8w1S9jTJp0CDOhd\n5SswYleGnT3o1c8GVcJobMIeFnQ0hNa48jKywJPuHOUN5bJgXK3f0XUh0KGlDfU8\nVMVmwqmnuLwFARktpN5ca+BR7KddD0z6idzeT2EIa6nlr7XzTeZxqkWHL1y71HaO\nFv333GhjFDgZOK7Hm//2coUIaGiiBL1a9gs+6LtqTLiTWX8mHLEvBEJgbPecR/Ro\nWz+w995gZdaPIPQGnvR9qAJQcE9MH8fZSNXk46lf2JO9fLjdPS1UNx7OvwmX+fcm\n2g2oRbiUH9rtFqkfDVLvN7fBQkfY4GX+4ZFPUPAlJz+cRuK3zjZaiwIniO/CUpV1\nXJX9aCQt4gCWYUFkrgku2jhyIGRxh7mHD025O+9Z67lnyKXbzr2aB4BZ1JVt1hwf\nw/XTtHicQ/8AD2iokIzFUVKGUyBYCZMhcbltCNII56RDvwB3v8jKk6cfePK5/7Y=\n-----END CERTIFICATE-----`, + 'de458364de55853b9bacb9fe3a30f61d3ded2372': + `-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUPz7c9K8GCz4jniW5VVCaDtOrAL8wDQYJKoZIhvcNAQEN\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMDkxNDQ1MDNaFw0yNjAx\nMDkxNDQ1MDNaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB\nAQUAA4ICDwAwggIKAoICAQDVFPLGluHXqyiBo04jP+VgM+Sgk21grrtBCTLBCCDB\n2WcHWj+nXRbSk5i/tnmQgDUY++qg+bD5UzLEiufyDyi6tbTUGvuXOneHHNTt1iNr\nxm9oj3fxH1FXwbCc0BjcyO+Zaz3f56UxDRbBQJtE6DO0cCI2FRrPTLfjbaRO7JZw\nPojd0+8IQyY6iiUuBosk1UCa1zpjoPWX79Bxf4JSTF47u8/y6pvetNW5CnuBGzf4\n4UuAINaTaqjg6t9Iy0wOPC51A57yZgg40COr8kBTmSdwD+UmuYiNC7fKvFNosiKJ\nrMbd/YT8Za1KHRi9RMe4DIn0/MSk5gVFZXpgxpqe+1C6fTKbkA6gFKsY8h/eA49m\nimVqgDTRCF8BWw1FFiKa3q2mROr3y6TqOlIsmsqKHOEgaiAVM7THNICGiPWCcIrh\nDqeMuSjKEqSNMLdU8mYgpcPOQuaWwISIO4VgTpSWTRo+d3vvhpTEKd0GDUy6drWu\nFHvfmbkQiZbYbzoCf75vhYcYCxKtthLTLLFYFKeve5IxbRkx0/OIdUK5aYeSOyhn\nHL+32icgWnbp7pNmq7R0VurmKvg0x0vF2G+PeBN9EIYI6JhRVLkmRvuNCf57f50t\n64TgThE0UhCRsH0a/Lyzl6PCZ9shiqblXgucF4ANz6nUoTzzno3XXThroroSt0Cz\nRwIDAQABo1MwUTAdBgNVHQ4EFgQUV89v6EXR8fbV8ZDW28FXPHEt0i8wHwYDVR0j\nBBgwFoAUV89v6EXR8fbV8ZDW28FXPHEt0i8wDwYDVR0TAQH/BAUwAwEB/zANBgkq\nhkiG9w0BAQ0FAAOCAgEAt8DVWwOgOAsG9aganHCb4/h/2fNMYD1fAUScGVlwCzbs\nXaWm3PoGRVwM9nh8LSpJ9fi8aicSqaFU1wiN2kf/YRO2nzt9l8wuqfyriu91TenN\nzRExtGaXYZmsB8kCo/pN0VBM48OP9wxV7rejCHhohSrYnvDl0EK3cSfcvTY2xC61\nPo1kZInD7cOXL+iQc27e8bmQ2xawnTL78jHneVDre2ZShMcEED220fIOIu9TYL5e\ncEafPxO1SRRgABLgPchRHCs+sHMIdPjyym3n4HLGk6ORcY2WwhNdBtxQoIbTwrjX\nJr+aNyH9bQQ6Vf+F/DAIqUph5g5+AiJgezU2KhYG+qgb+6rtjHtcMpMrkDGW6pNl\nQcL4O/yvfNFQLfy+oN9BM35Az8SnXsDV+Ou5hTK0ICHOsXnTwz9EWliolauf7asP\ntea7m8tJsko+04nKmGg2zkgCVEtqeLwFsNLL+UaGnj8A7AxPyt6PzHReRJDcP83e\n086xdTbmKI1Lno9ZoIebzlBV1u2I2tnj/CoMVgfZnFVSmmHerka7KlqKV5xsoeX6\n3/sx9kjzFyZ5CeGgyv0oIGgPHAg9twAeYbdb2Kr+ZAuTI4Xn/59iWvDtZyY3l3wd\nEs7c7TRmFjwtpuiGpa6n1PSG75XJps18jhgt6Xpok/xttk7x+SNIwMKUQrbK+hA=\n-----END CERTIFICATE-----`, + '57cf6fe845d1f1f6d5f190d6dbc1573c712dd22f': + `-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUPz7c9K8GCz4jniW5VVCaDtOrAL8wDQYJKoZIhvcNAQEN\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMDkxNDQ1MDNaFw0yNjAx\nMDkxNDQ1MDNaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB\nAQUAA4ICDwAwggIKAoICAQDVFPLGluHXqyiBo04jP+VgM+Sgk21grrtBCTLBCCDB\n2WcHWj+nXRbSk5i/tnmQgDUY++qg+bD5UzLEiufyDyi6tbTUGvuXOneHHNTt1iNr\nxm9oj3fxH1FXwbCc0BjcyO+Zaz3f56UxDRbBQJtE6DO0cCI2FRrPTLfjbaRO7JZw\nPojd0+8IQyY6iiUuBosk1UCa1zpjoPWX79Bxf4JSTF47u8/y6pvetNW5CnuBGzf4\n4UuAINaTaqjg6t9Iy0wOPC51A57yZgg40COr8kBTmSdwD+UmuYiNC7fKvFNosiKJ\nrMbd/YT8Za1KHRi9RMe4DIn0/MSk5gVFZXpgxpqe+1C6fTKbkA6gFKsY8h/eA49m\nimVqgDTRCF8BWw1FFiKa3q2mROr3y6TqOlIsmsqKHOEgaiAVM7THNICGiPWCcIrh\nDqeMuSjKEqSNMLdU8mYgpcPOQuaWwISIO4VgTpSWTRo+d3vvhpTEKd0GDUy6drWu\nFHvfmbkQiZbYbzoCf75vhYcYCxKtthLTLLFYFKeve5IxbRkx0/OIdUK5aYeSOyhn\nHL+32icgWnbp7pNmq7R0VurmKvg0x0vF2G+PeBN9EIYI6JhRVLkmRvuNCf57f50t\n64TgThE0UhCRsH0a/Lyzl6PCZ9shiqblXgucF4ANz6nUoTzzno3XXThroroSt0Cz\nRwIDAQABo1MwUTAdBgNVHQ4EFgQUV89v6EXR8fbV8ZDW28FXPHEt0i8wHwYDVR0j\nBBgwFoAUV89v6EXR8fbV8ZDW28FXPHEt0i8wDwYDVR0TAQH/BAUwAwEB/zANBgkq\nhkiG9w0BAQ0FAAOCAgEAt8DVWwOgOAsG9aganHCb4/h/2fNMYD1fAUScGVlwCzbs\nXaWm3PoGRVwM9nh8LSpJ9fi8aicSqaFU1wiN2kf/YRO2nzt9l8wuqfyriu91TenN\nzRExtGaXYZmsB8kCo/pN0VBM48OP9wxV7rejCHhohSrYnvDl0EK3cSfcvTY2xC61\nPo1kZInD7cOXL+iQc27e8bmQ2xawnTL78jHneVDre2ZShMcEED220fIOIu9TYL5e\ncEafPxO1SRRgABLgPchRHCs+sHMIdPjyym3n4HLGk6ORcY2WwhNdBtxQoIbTwrjX\nJr+aNyH9bQQ6Vf+F/DAIqUph5g5+AiJgezU2KhYG+qgb+6rtjHtcMpMrkDGW6pNl\nQcL4O/yvfNFQLfy+oN9BM35Az8SnXsDV+Ou5hTK0ICHOsXnTwz9EWliolauf7asP\ntea7m8tJsko+04nKmGg2zkgCVEtqeLwFsNLL+UaGnj8A7AxPyt6PzHReRJDcP83e\n086xdTbmKI1Lno9ZoIebzlBV1u2I2tnj/CoMVgfZnFVSmmHerka7KlqKV5xsoeX6\n3/sx9kjzFyZ5CeGgyv0oIGgPHAg9twAeYbdb2Kr+ZAuTI4Xn/59iWvDtZyY3l3wd\nEs7c7TRmFjwtpuiGpa6n1PSG75XJps18jhgt6Xpok/xttk7x+SNIwMKUQrbK+hA=\n-----END CERTIFICATE-----`, }; export const SKI_PEM = { f5a8f9b1e7a992a0865408db2a471c04a215f4d7: diff --git a/common/src/mock_certificates/sha1_rsa_3_4096/mock_csca.pem b/common/src/mock_certificates/sha1_rsa_3_4096/mock_csca.pem new file mode 100644 index 00000000..3263f05f --- /dev/null +++ b/common/src/mock_certificates/sha1_rsa_3_4096/mock_csca.pem @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIUB/B2jAj+dq2ixSRYqxgfo+n1o+QwDQYJKoZIhvcNAQEF +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMDgxNzI0MDhaFw0yNjAx +MDgxNzI0MDhaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIgMA0GCSqGSIb3DQEB +AQUAA4ICDQAwggIIAoICAQC1vqwljH1v73dJ1Z7wgrQqwXzEPmQxirOUQyDUI5zp +tamZAzjYdnY9HhRZe1ZXeBcSTs7/DgPSnZibr6DvQGwrgTBRC3KkOX1tiZsL1Txe +OkNR5yfRfdbzV3qUlzP8qbO6oR6ukVHf9NS5EheQQo+PqYz2kITyJ7EoKiLjHnoj +Q6edhDCng4a3zr1iC4X+i/ks+MKJbw7HXHbqE+qRG+/zBlTzogN+DswLCt/A6a+t +v8lf0nbIDqtQl3CcpPLQkvc9Uc9Z0QT1zfSWpzlD4NqrPFeZx64fUtHyWr35+yZ+ +pnhhZTEsDh7VExzqfh5c3bYGBIJJhi2On5axyXke3EQfLPMUxDpngEvtx/UCnhtF +cmTOkWJ0QAEgjwtG52cE4s+/uAmBxolPkbQ8vMhOnf2Y8WPM8NHMhS1dx9JrQlYT +d2qW65lQN1ETCN4QzFNbCS89R3hJYvnruHihxBtlrjoKh7YrnOKeiJ3FfcPzmKIQ +qzbckzlauaopVn9mF7Rarf8x1+Q5aXFEr33NBciCX7M3O+3DHiPbjxNqNTtRfcrV +Vjn8qCrMNpYcmL8pFpaSPsVGmchZBLiKaku+NUkL1aPg/PI2/QHc7MBySLj2yyIF +px/Yf/G5dXOthFPfh3pIQ1qYWmPpJOLRlD/1hoD1hrpfWrvL4jOsvTiasNbcmfsF +sQIBA6NTMFEwHQYDVR0OBBYEFDT2A3BinU1pLh/i7gepU7W0I/2bMB8GA1UdIwQY +MBaAFDT2A3BinU1pLh/i7gepU7W0I/2bMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI +hvcNAQEFBQADggIBAGTkZ0/WpcCJcIrbTYEjA1/c36HSEIL2laK9Nbicnlm1ArnJ +3EBI2WzMw5cEs7QCeGnFZLL/QHCYvc+0K6KXeyMQtwK/4TG1QI/Z3gvqseApKYXi +8gkxUYCJcP1tOCXCPRHs769dl2yE0U0h5QgSErn2LD2szZLv52lLm3ym0OnJfSV1 +1Q3AEeW5bRVoxqbV8pa8ASsv0WCYtbJ7VjU+zRnDePjbMD3VPlQK/H2LXedy4zDP +dEofORYgLBvFIEiHxQk0CIjO3x15uFF1KnbrkuQA0bXhwsoTw16fEyTNvnXN3z/5 +8qFeFqGdoi+6WdQRThoOcUY1BK6GP0o6TOUbmdQIunB5r8kMPyxWqim/vY8JUnHW +GkSFxIWvs0cgyeagVWb8MfcYGh/E2ac7StcNXq6908gl2Cmltrl0i8Oiy0UZQQXc +fw15zfjXVu447KURZRX8839OFTOghwUP3c95P5AYGsqdgF6NSSg5AGTpKfTOhX9G +ihL8cvCBzk8T4Kjo2Hu7aY/QFkePf9L+zVKDokhdiTs+euO4APhGLaZJJ8sD61jS +ZBsTqeLlzl4sPikJHF0nfRaQ9FvptbXAXxycE+AltBrzP6deEtssI9PU+XMkRgKa +EBh8eXOJN8jJfo8YsxzohQsS7n+0K2JYC27bgECSKtvof4oWjrFMExJUoZau +-----END CERTIFICATE----- \ No newline at end of file diff --git a/common/src/mock_certificates/sha256_rsa_3_4096/mock_csca.crt b/common/src/mock_certificates/sha256_rsa_3_4096/mock_csca.crt index 45396dcc..c6329804 100644 --- a/common/src/mock_certificates/sha256_rsa_3_4096/mock_csca.crt +++ b/common/src/mock_certificates/sha256_rsa_3_4096/mock_csca.crt @@ -1,31 +1,31 @@ -----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE----- diff --git a/common/src/mock_certificates/sha256_rsa_3_4096/mock_csca.key b/common/src/mock_certificates/sha256_rsa_3_4096/mock_csca.key index b4cb01cb..5e552fe2 100644 --- a/common/src/mock_certificates/sha256_rsa_3_4096/mock_csca.key +++ b/common/src/mock_certificates/sha256_rsa_3_4096/mock_csca.key @@ -1,52 +1,52 @@ -----BEGIN PRIVATE KEY----- -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 -GNYoCtc56XQ1ArIAzBynL0sfhxnX +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 +/slPb1ij/OQ6PS2eUAgFYLfS7ZEnAQ== -----END PRIVATE KEY----- diff --git a/common/src/mock_certificates/sha256_rsa_3_4096/mock_dsc.crt b/common/src/mock_certificates/sha256_rsa_3_4096/mock_dsc.crt index 6cbe4353..4ccf272f 100644 --- a/common/src/mock_certificates/sha256_rsa_3_4096/mock_dsc.crt +++ b/common/src/mock_certificates/sha256_rsa_3_4096/mock_dsc.crt @@ -1,33 +1,31 @@ -----BEGIN CERTIFICATE----- -MIIFpTCCA42gAwIBAgIUWTN21jdpu7PcJMCb2xNtfQz1gAMwDQYJKoZIhvcNAQEL -BQAwSTELMAkGA1UEBhMCSlAxEjAQBgNVBAoMCU1vY2sgQ1NDQTESMBAGA1UECwwJ -TW9jayBVbml0MRIwEAYDVQQDDAlNb2NrIENTQ0EwHhcNMjUwMTEwMTYwNDE4WhcN -MzAwMTA5MTYwNDE4WjBWMQswCQYDVQQGEwJKUDERMA8GA1UECgwITW9jayBEU0Mx -EjAQBgNVBAsMCU1vY2sgVW5pdDEgMB4GA1UEAwwXTW9jayBEU0MgU0hBNTEyIFJT -QTIwNDgwggIgMA0GCSqGSIb3DQEBAQUAA4ICDQAwggIIAoICAQC06VTApDmKkLio -0T3v64StMcZRFHkR741UaxX2D6sa9PnCDekA4EU+6z+53oKQrjztLiWqnfN555Bn -s/dW9IP4V9NMv2SBUELyL+tLs+mVYmYnJBoVBABcKOWCkedE6KuJZe2leHp/9zLQ -uC8rrgcelstkWxVW913LhvWRewjpKRw3ukax12bciYUaHPKlht9/ManmOKC9OJv3 -LG4XS73BUFoNS9k4r+k+47ONqqdamy+y+d4OWR+DtybGIddfQoDk/QerOmuz2Vpa -o6lh9qMkTd6d659/X+FiZwJXleUUbNFvWi3ifVezHhwruNGdxT2sLV1SZGMojciT -O6OPJnFjKOu/6Da5ALgO2Q/G7F7f0SexpttmWr8QKbP4IFyxB6HHVeJQkrmdTuc2 -VVVT+koryZhLeu4BBFdUjdTHQtg2O5/9apyIacO0+OboyZakLv6v8vzzEhbqDcva -nAey/8lZFaejjR4kqgkB/PWXGpifT0JZy+oB0JrxLIlkb95n2QxCgBeY3l7jj7g0 -d1vkNpetlEBSh7y6WV19S4DN6Fut+M6r6+NskEHkJD6s6aI1619JWsj9vmNaLITR -c/2CxmhCJgDfgDj0k+zGXLX7x5Pns3dUsWFrd0WAYvgpofb8CUL6bFOwqD5JGvlF -+dk+3gzUZiVVoYlrGjgit3LCZ3WzjwIBA6N6MHgwDAYDVR0TAQH/BAIwADAOBgNV -HQ8BAf8EBAMCB4AwGAYDVR0lAQH/BA4wDAYKKwYBBAGCNwoDDDAdBgNVHQ4EFgQU -jz/7QvwEGkKSkTkzP03lFhjMs1YwHwYDVR0jBBgwFoAU9DAZDj4vOjUN05u3nBGx -7qTQkYowDQYJKoZIhvcNAQELBQADggIBAK1eEsZzIUyNsnm6BSwgc0FHB4TBimK2 -frZ1QTVqggDjzOS0Nk/WuNZxcpxdmjp4sNkjF65AVSR5OSgCtk5STytneqvfbjXY -xq3Rl6XWPMv4vY4jEQudduOM0HFkKPMafW4x7etaJLeCZ4rlfjYMZj00iM6G/o3v -jVMq+7VickJ2LMK8I/3Jyqwg/hwZ1oKhPS2Lpej7rA9VwBMTGLyGoyaVIp599hwj -HyanFyDGLe068aF7G/LJuJ0+FRUcsL1sScYKOs9bobQZrJugBVmHKGCbZGHhwwCz -iyI42U9cLL8taYlRK8JgqoDhkQRJPZ1ju95jVsxB95a7H5MWBasw1o8WsBIwuQvl -ANX6mLlssIp4ZtK9TPhIfUhl+/QDiC0QPhND9qHM8xTEZR3mkObmkcFf2yY3oXdl -fuJCNqgLe180lihktlx83CZ8NsOWynQIBEtBDo2Okloc6F7ra34EKMECl5WIl5bK -UECsc0jCN6axcmFy5jRI66pkkHwMkC9Cfgw8TXaSA/iBRUEH75ft2yYx5JDpvx0U -qgjmXHPgHwanzAC0FdFj5d7yICoHOiBEj6mmDYRoB9inGnoyjj3g+ge/aJvQmNn2 -SLV08wwczovgh3fdFBf9FQcfT77ggcJd4vJXiDfNBbQghzkh5EAugC6nlG3zcVqP -ZPOzG68rtudy +MIIFWDCCA0CgAwIBAgIUAn0wjbn2/9WEXhG37JuqVuCpNb8wDQYJKoZIhvcNAQEL +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMjAxMDA4MzhaFw0yNTAy +MTkxMDA4MzhaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIgMA0GCSqGSIb3DQEB +AQUAA4ICDQAwggIIAoICAQDE7GINSiYyMoh6sOdz4nqnq5ZlnJ6vJy285ebvvTIy +9e4g487E7f1AZw8tWLH96xwkmfu7+GR8nKa0fK1MYmQUM+qyScXmvHulLOHop9Ju +2Ehl/NGSdW8TzUU6R0R5AV7Hj8N/kIHtxXyWCn3FL8uuiCxKYUIMUTbSUdKtNH7/ +kJAcQThH9CjchXJmR8vnZK/7tVQ2VENUUt2JmJRx4qcSx2YLljLKcMuHFAgfGK3n +R2aIQouqNUbhy5r4ePxw23AHtBnYfApJicI9yl9c5tr0RDV8bv3eDpaOb7DFFwCJ +4ERDy3jjlswGZP4Kab2DtvBIuyxf5wjMdG5Hu+v6wPoINMjfFuHkcQwhGoJJBplv +HAH82ft1qi6gg9zYxqhPO1+syopNleadYE6d6NezOKAnfDiroMJJf7F9pfZYVimC +SKnvQO7ntWoTZh2Jnga0zpR2SP12ufvRneEdYjWA5htMOW/x0AIHLFBvVaEZBdfH +NrXGZ8uE6W/3MDS9hErwudlVY4ZvMMxNxfxPbJXfwnzxvHs2R6xnO68N2x2wuFRd +s0EX2yIjs30/IhmFfV/HpB1BQShyjPzp1/JwghIzkyYpZQST+W/f+gGJPR+gsoGJ +2xGvTM4ZPWr09MXOLtpxQPUXBGB4EqeYsHqrp1PDYmbbLRTLCwUNROVqa+k+aYH2 +IQIBA6NCMEAwHQYDVR0OBBYEFEez7ENf8flzX/3adWlGljgj5bVrMB8GA1UdIwQY +MBaAFBXYaQsMqXFjQGgCuUjbQN1WXFWnMA0GCSqGSIb3DQEBCwUAA4ICAQC2clOI +bOzg183dVNRvEyDVO7gv4S+6QrJ2/iebtbll5swyshv62hXHl8mWm+HkFmONTL7e +QTPryP9K67HcpL2fGRG8tfUpDsR8Zqc21K6w15MX2HHb6+0t5l74OiPZ2IwfCKl5 +IF5N9Cpq6vWtWeonWhrR22P25c2ZWyYbGrxCroxiulKjiDwzo8IHo12dDo4YkCbv +O5FNdr94HVxIe+FvIOeV0MFmryl0mwXcZGH2/j3PnnZzKBwC8cibpTdqjNGvdUWB +k68PxuZIcZ1JnYW/3/hlWuW+qdbmaUz0ILlIWmWaKdOAC2NVLeUr8WRemlH0o0BI +/Hp3eqyxYEIlPqPZnUZ7C9NC605OrFD8rfXxj33Q7ryYOjqbHeNpG9gM3e76h74j +msJ2lSpWKRXRYccaYbwSZwr7B87e9CCmwBxc4rwTr9kdT1tke54ZdrpyYBdHcWzl +dPA0NOlVnfKkMaGDQDa6qOHTBK+ZmiCWdL6gTC8WD5ZWB/c3AOWjkxfIHM3QHwFZ +R0jU6WTM72sYT/X+T12FcKISSYVGyUXda2h1Iu1hKm+vySib0sbJO/YRKSxmg+BC +ORq6Gi/pNvOmJEDqtcRlhdKdJUyOun76tWii1dxTMYN/RG6gsFjQEv76eFeWe4Cu +tJ6FNJaZ3Nt9J7zORs0LIybpKrBHdkAAONSLIA== -----END CERTIFICATE----- diff --git a/common/src/mock_certificates/sha384_rsa_65537_4096/mock_csca.pem b/common/src/mock_certificates/sha384_rsa_65537_4096/mock_csca.pem new file mode 100644 index 00000000..6f6b6b40 --- /dev/null +++ b/common/src/mock_certificates/sha384_rsa_65537_4096/mock_csca.pem @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIUeJuxzJTP2lTrmy+WyYua+hlvgGcwDQYJKoZIhvcNAQEM +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMDkxMzE0MzZaFw0yNjAx +MDkxMzE0MzZaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQDfm1vGl4HEW8p3ORO5TRKOETnfkGAvevoD32Z5bf6+ +VWEOo+MlWGoFIi8tZV8RH1sTTM8khRXjPUvlmP395gthRB/YGtX/0JRw8kXRCcjU +voeVACstas92L85u/lFk3e+WLybhk67ozmqltW/N07E9PuRaXyJqMFrjKMDqoskQ +o87cofPwO5J+QROvfLHkfut8pqwG8erzqm6ySaN8CFOTqpRSM1/7MXlBUyGjXZM7 +xlagrb1crN/zZ2+73lx7fT0Gbh9f0scH34ITJAhST2nu5yvnh+I96DQq27jYf1nm +u8jx16JHHDHtKh0N1LNzKGJZviD5pZAJIz8SrSgquU5ZNXebN9y2/7p7/P4rQ7Yr +3fQx82QTmrxC9jGnyRWniOnmyVVkcwRk1FJVuTB4Mrv81oXBjvUuGEeVT1PfCn5S +1vepb5EEEh9oya5KB9SbJ4o7+mu3IlqR+Htf+GBZZGaW4Fx942zL8uvKqo9oeKXG +SRuW701MBhuIrvV4+Os8Qq9wEd6lvSgXiJzThk37rN+B6qN9Tjmmwp+OJGm8uwEI +JAKv57YZOQdDCbhlxRjdaX+6Vb6JrLFaKiGiGXNvtR3ZE7IxiuckJ/D3dNtRCTxm +4OTdrmy2oe9KbGgHa/wAO/DZnsdLBNmmR4hgROhHiSYzQMl7gj2lbDqUwib3rQN2 +UQIDAQABo1MwUTAdBgNVHQ4EFgQUANkk2CjjyuP4mPBTU7UaXA+8+d4wHwYDVR0j +BBgwFoAUANkk2CjjyuP4mPBTU7UaXA+8+d4wDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQwFAAOCAgEApUKKAdbpccPreqQtprP8x80azBgOcCTywpttKsrVWTXg +6iwp0WSSM1Sr3WwYg4VjBdsn9TSoUWTygcajC8ee46wJBTaTI5bbSIZroLJ9LHQj +H64xxPura34qtRkOVFV9r5lin+tMwyW8lEjDidpZ9wWMSMaGg81/H4nmzVfDYKpx +FNKLq8VeuK3THY0BkxygTsW6rQN96HnHhWqjYQKAXGcNx5pcV8w1S9jTJp0CDOhd +5SswYleGnT3o1c8GVcJobMIeFnQ0hNa48jKywJPuHOUN5bJgXK3f0XUh0KGlDfU8 +VMVmwqmnuLwFARktpN5ca+BR7KddD0z6idzeT2EIa6nlr7XzTeZxqkWHL1y71HaO +Fv333GhjFDgZOK7Hm//2coUIaGiiBL1a9gs+6LtqTLiTWX8mHLEvBEJgbPecR/Ro +Wz+w995gZdaPIPQGnvR9qAJQcE9MH8fZSNXk46lf2JO9fLjdPS1UNx7OvwmX+fcm +2g2oRbiUH9rtFqkfDVLvN7fBQkfY4GX+4ZFPUPAlJz+cRuK3zjZaiwIniO/CUpV1 +XJX9aCQt4gCWYUFkrgku2jhyIGRxh7mHD025O+9Z67lnyKXbzr2aB4BZ1JVt1hwf +w/XTtHicQ/8AD2iokIzFUVKGUyBYCZMhcbltCNII56RDvwB3v8jKk6cfePK5/7Y= +-----END CERTIFICATE----- \ No newline at end of file diff --git a/common/src/mock_certificates/sha512_rsa_65537_4096/mock_csca.pem b/common/src/mock_certificates/sha512_rsa_65537_4096/mock_csca.pem new file mode 100644 index 00000000..f65240b1 --- /dev/null +++ b/common/src/mock_certificates/sha512_rsa_65537_4096/mock_csca.pem @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIUPz7c9K8GCz4jniW5VVCaDtOrAL8wDQYJKoZIhvcNAQEN +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMDkxNDQ1MDNaFw0yNjAx +MDkxNDQ1MDNaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQDVFPLGluHXqyiBo04jP+VgM+Sgk21grrtBCTLBCCDB +2WcHWj+nXRbSk5i/tnmQgDUY++qg+bD5UzLEiufyDyi6tbTUGvuXOneHHNTt1iNr +xm9oj3fxH1FXwbCc0BjcyO+Zaz3f56UxDRbBQJtE6DO0cCI2FRrPTLfjbaRO7JZw +Pojd0+8IQyY6iiUuBosk1UCa1zpjoPWX79Bxf4JSTF47u8/y6pvetNW5CnuBGzf4 +4UuAINaTaqjg6t9Iy0wOPC51A57yZgg40COr8kBTmSdwD+UmuYiNC7fKvFNosiKJ +rMbd/YT8Za1KHRi9RMe4DIn0/MSk5gVFZXpgxpqe+1C6fTKbkA6gFKsY8h/eA49m +imVqgDTRCF8BWw1FFiKa3q2mROr3y6TqOlIsmsqKHOEgaiAVM7THNICGiPWCcIrh +DqeMuSjKEqSNMLdU8mYgpcPOQuaWwISIO4VgTpSWTRo+d3vvhpTEKd0GDUy6drWu +FHvfmbkQiZbYbzoCf75vhYcYCxKtthLTLLFYFKeve5IxbRkx0/OIdUK5aYeSOyhn +HL+32icgWnbp7pNmq7R0VurmKvg0x0vF2G+PeBN9EIYI6JhRVLkmRvuNCf57f50t +64TgThE0UhCRsH0a/Lyzl6PCZ9shiqblXgucF4ANz6nUoTzzno3XXThroroSt0Cz +RwIDAQABo1MwUTAdBgNVHQ4EFgQUV89v6EXR8fbV8ZDW28FXPHEt0i8wHwYDVR0j +BBgwFoAUV89v6EXR8fbV8ZDW28FXPHEt0i8wDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQ0FAAOCAgEAt8DVWwOgOAsG9aganHCb4/h/2fNMYD1fAUScGVlwCzbs +XaWm3PoGRVwM9nh8LSpJ9fi8aicSqaFU1wiN2kf/YRO2nzt9l8wuqfyriu91TenN +zRExtGaXYZmsB8kCo/pN0VBM48OP9wxV7rejCHhohSrYnvDl0EK3cSfcvTY2xC61 +Po1kZInD7cOXL+iQc27e8bmQ2xawnTL78jHneVDre2ZShMcEED220fIOIu9TYL5e +cEafPxO1SRRgABLgPchRHCs+sHMIdPjyym3n4HLGk6ORcY2WwhNdBtxQoIbTwrjX +Jr+aNyH9bQQ6Vf+F/DAIqUph5g5+AiJgezU2KhYG+qgb+6rtjHtcMpMrkDGW6pNl +QcL4O/yvfNFQLfy+oN9BM35Az8SnXsDV+Ou5hTK0ICHOsXnTwz9EWliolauf7asP +tea7m8tJsko+04nKmGg2zkgCVEtqeLwFsNLL+UaGnj8A7AxPyt6PzHReRJDcP83e +086xdTbmKI1Lno9ZoIebzlBV1u2I2tnj/CoMVgfZnFVSmmHerka7KlqKV5xsoeX6 +3/sx9kjzFyZ5CeGgyv0oIGgPHAg9twAeYbdb2Kr+ZAuTI4Xn/59iWvDtZyY3l3wd +Es7c7TRmFjwtpuiGpa6n1PSG75XJps18jhgt6Xpok/xttk7x+SNIwMKUQrbK+hA= +-----END CERTIFICATE----- \ No newline at end of file diff --git a/common/src/utils/csca.ts b/common/src/utils/csca.ts index faec720f..982b6c8a 100644 --- a/common/src/utils/csca.ts +++ b/common/src/utils/csca.ts @@ -1,17 +1,51 @@ -import { shaPad } from './shaPad'; +import { sha384_512Pad, shaPad } from './shaPad'; import * as forge from 'node-forge'; -import { bytesToBigDecimal, getNAndK, getNAndKCSCA, hexToDecimal, splitToWords } from './utils'; +import * as asn1 from 'asn1js'; +import { bytesToBigDecimal, extractRSFromSignature, getNAndK, getNAndKCSCA, hexToDecimal, splitToWords } from './utils'; import { CSCA_TREE_DEPTH, MODAL_SERVER_ADDRESS } from '../constants/constants'; import { poseidon2 } from 'poseidon-lite'; import { IMT } from '@openpassport/zk-kit-imt'; import serialized_csca_tree from '../../pubkeys/serialized_csca_tree.json'; import axios from 'axios'; -import { parseCertificateSimple } from './certificate_parsing/parseCertificateSimple'; import { getLeafCSCA } from './pubkeyTree'; import { SKI_PEM, SKI_PEM_DEV } from '../constants/skiPem'; import { CertificateData, PublicKeyDetailsRSA } from './certificate_parsing/dataStructure'; import { formatInput } from './generateInputs'; +// import { getCertificateFromPem, parseCertificate } from './certificates/handleCertificate'; +import { parseCertificate } from '../utils/certificate_parsing/parseCertificate'; import { SignatureAlgorithm } from './types'; +import { Certificate } from 'pkijs'; + +export function findStartIndexEC(modulus: string, messagePadded: Uint8Array): number { + const modulusNumArray = []; + for (let i = 0; i < modulus.length; i += 2) { + modulusNumArray.push(parseInt(modulus.slice(i, i + 2), 16)); + } + + let startIndex = -1; + // For ECDSA, look for the ASN.1 tag for EC Point (0x04) + const isECPoint = modulusNumArray[0] === 0x04; + + for (let i = 0; i < messagePadded.length - modulusNumArray.length + 1; i++) { + let found = true; + for (let j = 0; j < modulusNumArray.length; j++) { + if (messagePadded[i + j] !== modulusNumArray[j]) { + found = false; + break; + } + if (found && (j === modulusNumArray.length - 1 || (isECPoint && j > 0))) { + startIndex = i; + break; + } + } + if (startIndex !== -1) break; + } + + if (startIndex === -1) { + throw new Error('DSC Pubkey not found in CSCA certificate'); + } + return startIndex; +} export function findStartIndex(modulus: string, messagePadded: Uint8Array): number { const modulusNumArray = []; @@ -39,7 +73,7 @@ export function findStartIndex(modulus: string, messagePadded: Uint8Array): numb } } if (startIndex === -1) { - throw new Error('DSC Pubkey not found in CSCA certificate'); + throw new Error('DSC Pubkey not found in certificate'); } return startIndex; } @@ -50,91 +84,105 @@ export function generateCircuitInputsDSC( max_cert_bytes: number, devMode: boolean = false ) { - const dscCert = forge.pki.certificateFromPem(dscCertificate); - const dscTbs = dscCert.tbsCertificate; - const dscTbsCertDer = forge.asn1.toDer(dscTbs).getBytes(); - const dscTbsCertBytes = derToBytes(dscTbsCertDer); + const dscCert = getCertificateFromPem(dscCertificate); + const dscTbs = dscCert.tbsView; const dscTbsCertUint8Array = Uint8Array.from( - dscTbsCertBytes.map((byte) => parseInt(byte.toString(16), 16)) + dscTbs.map((byte) => parseInt(byte.toString(16), 16)) ); - const { signatureAlgorithm, hashAlgorithm, authorityKeyIdentifier, publicKeyDetails } = - parseCertificateSimple(dscCertificate); - console.log('authorityKeyIdentifier', authorityKeyIdentifier); + const { + signatureAlgorithm, + hashAlgorithm, + publicKeyDetails, + authorityKeyIdentifier, + } = parseCertificate(dscCertificate, 'dsc_cert'); + + const { bits, x, y, modulus, exponent } = publicKeyDetails let dsc_message_padded; let dsc_messagePaddedLen; - [dsc_message_padded, dsc_messagePaddedLen] = shaPad(dscTbsCertUint8Array, max_cert_bytes); + [dsc_message_padded, dsc_messagePaddedLen] = hashAlgorithm == 'sha384' || hashAlgorithm == 'sha512' + ? sha384_512Pad(dscTbsCertUint8Array, max_cert_bytes) + : shaPad(dscTbsCertUint8Array, max_cert_bytes); - console.log('signatureAlgorithm: ', signatureAlgorithm); - const { n, k } = getNAndK(signatureAlgorithm as SignatureAlgorithm); - const dscSignature = dscCert.signature; - const encryptedDigest = Array.from(forge.util.createBuffer(dscSignature).getBytes(), (char) => + const { n, k } = getNAndK(`${signatureAlgorithm}_${hashAlgorithm}_${exponent}_${bits}` as SignatureAlgorithm); + const dscSignature = dscCert.signatureValue.valueBlock.valueHexView; + const sigantureRaw = Array.from(forge.util.createBuffer(dscSignature).getBytes(), (char) => char.charCodeAt(0) ); - let pubKey_dsc, - signature, - startIndex, - dsc_message_padded_formatted, - dsc_messagePaddedLen_formatted: any; - let curve, exponent; + let pubKey_dsc, signature, startIndex, dsc_message_padded_formatted, dsc_messagePaddedLen_formatted: any; + let curve; if (signatureAlgorithm === 'rsa' || signatureAlgorithm === 'rsapss') { - const modulus = (publicKeyDetails as PublicKeyDetailsRSA).modulus; - exponent = (publicKeyDetails as PublicKeyDetailsRSA).exponent; - startIndex = findStartIndex( - (publicKeyDetails as PublicKeyDetailsRSA).modulus, - dsc_message_padded - ).toString(); + startIndex = findStartIndex(modulus, dsc_message_padded).toString(); dsc_message_padded_formatted = Array.from(dsc_message_padded).map((x) => x.toString()); dsc_messagePaddedLen_formatted = BigInt(dsc_messagePaddedLen).toString(); - console.log('\x1b[34m', 'startIndex: ', startIndex, '\x1b[0m'); + console.log("\x1b[34m", "startIndex: ", startIndex, "\x1b[0m"); + console.log("\x1b[34m", "n and k: ", n, k, "\x1b[0m"); + pubKey_dsc = formatInput(splitToWords(BigInt(hexToDecimal(modulus)), n, k)); - } else { - console.log('\x1b[34m', 'signatureAlgorithm: ', signatureAlgorithm, '\x1b[0m'); - // TODO: implement ecdsa - // const { r, s } = extractRSFromSignature(encryptedDigest); - // const signature_r = splitToWords(BigInt(hexToDecimal(r)), n_csca, k_csca); - // const signature_s = splitToWords(BigInt(hexToDecimal(s)), n_csca, k_csca); - // signature = [...signature_r, ...signature_s]; - // const dsc_x_formatted = splitToWords(BigInt(hexToDecimal(x)), n, k); - // const dsc_y_formatted = splitToWords(BigInt(hexToDecimal(y)), n, k); - // pubKey = [...dsc_x_formatted, ...dsc_y_formatted]; - // } else { - // signature = splitToWords(BigInt(bytesToBigDecimal(encryptedDigest)), n_csca, k_csca); - - // pubKey = splitToWords(BigInt(hexToDecimal(modulus)), n, k); - } + } else if (signatureAlgorithm === 'ecdsa') { + + const normalizedX = x.length % 2 === 0 ? x : '0' + x; + const normalizedY = y.length % 2 === 0 ? y : '0' + y; + const dsc_x_formatted = splitToWords(BigInt(hexToDecimal(normalizedX)), n, k); + const dsc_y_formatted = splitToWords(BigInt(hexToDecimal(normalizedY)), n, k); + pubKey_dsc = [...dsc_x_formatted, ...dsc_y_formatted]; + + console.log("\x1b[34m", "pubKey_dsc: ", pubKey_dsc, "\x1b[0m"); + + const fullPubKey = normalizedX + normalizedY; + const pubKeyBytes = Buffer.from(fullPubKey, 'hex'); + startIndex = findStartIndexEC(pubKeyBytes.toString('hex'), dsc_message_padded).toString(); + console.log("\x1b[34m", "startIndex: ", startIndex, "\x1b[0m"); + + dsc_message_padded_formatted = Array.from(dsc_message_padded).map(x => x.toString()); + dsc_messagePaddedLen_formatted = BigInt(dsc_messagePaddedLen).toString(); + } + console.log("authorityKeyIdentifier: ", authorityKeyIdentifier); const cscaPem = getCSCAFromSKI(authorityKeyIdentifier, devMode); + console.log("\x1b[34m", "cscaPem: ", cscaPem, "\x1b[0m"); const leaf = getLeafCSCA(cscaPem); const [root, proof] = getCSCAModulusProof(leaf); - const parsedCSCAPem: CertificateData = parseCertificateSimple(cscaPem); - + const parsedCSCAPem = parseCertificate(cscaPem, 'csca_cert'); let csca_pubKey_formatted; if (parsedCSCAPem.signatureAlgorithm === 'rsa' || parsedCSCAPem.signatureAlgorithm === 'rsapss') { - const csca_modulus = (parsedCSCAPem.publicKeyDetails as PublicKeyDetailsRSA).modulus; - const { n: n_csca, k: k_csca } = getNAndKCSCA(parsedCSCAPem.signatureAlgorithm); + const csca_modulus = parsedCSCAPem.publicKeyDetails.modulus; + const { n: n_csca, k: k_csca } = getNAndK(`${parsedCSCAPem.signatureAlgorithm}_${parsedCSCAPem.hashAlgorithm}_${exponent}_${parsedCSCAPem.publicKeyDetails.bits}` as SignatureAlgorithm); + // const { n: n_csca, k: k_csca } = getNAndKCSCA(parsedCSCAPem.signatureAlgorithm); + console.log("\x1b[34m", "n_csca: ", n_csca, "k_csca: ", k_csca, "\x1b[0m"); + csca_pubKey_formatted = splitToWords(BigInt(hexToDecimal(csca_modulus)), n_csca, k_csca); - const signature_raw = Array.from(forge.util.createBuffer(dscSignature).getBytes(), (char) => - char.charCodeAt(0) - ); - signature = formatInput(splitToWords(BigInt(bytesToBigDecimal(signature_raw)), n_csca, k_csca)); + signature = formatInput(splitToWords(BigInt(bytesToBigDecimal(sigantureRaw)), n_csca, k_csca)); + } else { - // const csca_x_formatted = splitToWords(BigInt(hexToDecimal(csca_x)), n_csca, k_csca); - // const csca_y_formatted = splitToWords(BigInt(hexToDecimal(csca_y)), n_csca, k_csca); - // csca_pubKey_formatted = [...csca_x_formatted, ...csca_y_formatted]; + console.log("\x1b[34m", "signatureAlgorithm: ", parsedCSCAPem.signatureAlgorithm, "\x1b[0m"); + const { n: n_csca, k: k_csca } = getNAndK(`${parsedCSCAPem.signatureAlgorithm}_${parsedCSCAPem.hashAlgorithm}_${curve}_${parsedCSCAPem.publicKeyDetails.bits}` as SignatureAlgorithm); + console.log("\x1b[34m", "n_csca: ", n_csca, "k_csca: ", k_csca, "\x1b[0m"); + + const normalizedX = x.length % 2 === 0 ? parsedCSCAPem.publicKeyDetails.x : '0' + parsedCSCAPem.publicKeyDetails.x; + const normalizedY = y.length % 2 === 0 ? parsedCSCAPem.publicKeyDetails.y : '0' + parsedCSCAPem.publicKeyDetails.y; + const csca_x_formatted = splitToWords(BigInt(hexToDecimal(normalizedX)), n_csca, k_csca); + const csca_y_formatted = splitToWords(BigInt(hexToDecimal(normalizedY)), n_csca, k_csca); + csca_pubKey_formatted = [...csca_x_formatted, ...csca_y_formatted]; + + const { r, s } = extractRSFromSignature(sigantureRaw); + const signature_r = splitToWords(BigInt(hexToDecimal(r)), n_csca, k_csca); + const signature_s = splitToWords(BigInt(hexToDecimal(s)), n_csca, k_csca); + signature = [...signature_r, ...signature_s]; } console.log('dsc_pubKey_length', pubKey_dsc.length); return { - signature_algorithm: `${signatureAlgorithm}_${curve || exponent}_${hashAlgorithm}_${4096}`, + signature_algorithm: `${signatureAlgorithm}_${curve || exponent}_${hashAlgorithm}_${bits}`, inputs: { raw_dsc_cert: dsc_message_padded_formatted, raw_dsc_cert_padded_bytes: [dsc_messagePaddedLen_formatted], + dsc_pubkey_length_bytes: [bits / 8], csca_pubKey: csca_pubKey_formatted, signature: signature, dsc_pubKey: pubKey_dsc, @@ -239,3 +287,12 @@ export const generateDscSecret = () => { const secretBytes = forge.random.getBytesSync(31); return BigInt(`0x${forge.util.bytesToHex(secretBytes)}`).toString(); }; + +function getCertificateFromPem(pemContent: string): Certificate { + const certBuffer = Buffer.from( + pemContent.replace(/(-----(BEGIN|END) CERTIFICATE-----|\n)/g, ''), + 'base64' + ); + const asn1Data = asn1.fromBER(certBuffer); + return new Certificate({ schema: asn1Data.result }); +} \ No newline at end of file diff --git a/common/src/utils/pubkeyTree.ts b/common/src/utils/pubkeyTree.ts index eab4cb07..d6a2777e 100644 --- a/common/src/utils/pubkeyTree.ts +++ b/common/src/utils/pubkeyTree.ts @@ -74,12 +74,12 @@ export function getLeafCSCA(dsc: string): string { const { modulus, bits, exponent } = publicKeyDetails as PublicKeyDetailsRSA; const sigAlgKey = `${signatureAlgorithm}_${hashAlgorithm}_${exponent}_${bits}`; const sigAlgIndex = SignatureAlgorithmIndex[sigAlgKey]; - const pubkeyChunked = splitToWords(BigInt(hexToDecimal(modulus)), n, k); - return customHasher([sigAlgIndex, ...pubkeyChunked]); if (sigAlgIndex == undefined) { console.error(`\x1b[31mInvalid signature algorithm: ${sigAlgKey}\x1b[0m`); throw new Error(`Invalid signature algorithm: ${sigAlgKey}`); } + const pubkeyChunked = splitToWords(BigInt(hexToDecimal(modulus)), n, k); + return customHasher([sigAlgIndex, ...pubkeyChunked]); } else if (signatureAlgorithm === 'rsapss') { const { modulus, bits, exponent, hashAlgorithm } = publicKeyDetails as PublicKeyDetailsRSAPSS; const sigAlgKey = `${signatureAlgorithm}_${hashAlgorithm}_${exponent}_${bits}`; diff --git a/registry/src/csca/build_csca_merkle_tree.ts b/registry/src/csca/build_csca_merkle_tree.ts index 9727b3e8..0a305b7b 100644 --- a/registry/src/csca/build_csca_merkle_tree.ts +++ b/registry/src/csca/build_csca_merkle_tree.ts @@ -64,7 +64,11 @@ async function buildCscaMerkleTree() { const mockCscaList = [ '../common/src/mock_certificates/sha256_rsa_4096/mock_csca.pem', '../common/src/mock_certificates/sha256_rsapss_4096/mock_csca.pem', - '../common/src/mock_certificates/sha1_rsa_4096/mock_csca.pem', + '../common/src/mock_certificates/sha1_rsa_4096/mock_csca.crt', + '../common/src/mock_certificates/sha1_rsa_3_4096/mock_csca.pem', + '../common/src/mock_certificates/sha256_rsa_3_4096/mock_csca.crt', + '../common/src/mock_certificates/sha384_rsa_65537_4096/mock_csca.pem', + '../common/src/mock_certificates/sha512_rsa_65537_4096/mock_csca.pem', ]; for (const mockCscaFile of mockCscaList) { From 10e203602fd37abbfdcbc0a7ccc615227a0d0549 Mon Sep 17 00:00:00 2001 From: seshanthS Date: Tue, 21 Jan 2025 16:25:54 +0530 Subject: [PATCH 2/6] add dsc rsapss instances --- .../instances/dsc_rsapss_sha256_3_3072.circom | 5 + .../instances/dsc_rsapss_sha256_3_4096.circom | 5 + .../dsc_rsapss_sha256_65537_2048.circom | 5 + .../dsc_rsapss_sha256_65537_3072.circom | 5 + .../dsc_rsapss_sha256_65537_4096.circom | 2 +- .../dsc_rsapss_sha384_65537_3072.circom | 5 + .../dsc_rsapss_sha384_65537_4096.circom | 5 + .../utils/passport/signatureAlgorithm.circom | 13 + .../utils/passport/signatureVerifier.circom | 3 + circuits/package.json | 2 +- circuits/tests/dsc/dsc.test.ts | 259 ++++++++ circuits/tests/dsc/test_cases.ts | 36 ++ common/pubkeys/serialized_csca_tree.json | 2 +- common/src/constants/constants.ts | 1 + common/src/constants/mockCertificates.ts | 574 ++++++++++-------- common/src/constants/skiPem.ts | 10 + .../sha256_rsapss_3072/mock_csca.pem | 28 + .../sha256_rsapss_3_3072/mock_csca.pem | 28 + .../sha256_rsapss_3_4096/mock_csca.pem | 34 ++ .../sha256_rsapss_4096/mock_csca.crt | 34 ++ .../sha256_rsapss_4096/mock_dsc.crt | 33 + .../sha384_rsapss_3072/mock_csca.pem | 28 + .../sha384_rsapsss_4096/mock_csca.pem | 34 ++ .../parseCertificateSimple.ts | 6 +- registry/src/csca/build_csca_merkle_tree.ts | 6 + 25 files changed, 907 insertions(+), 256 deletions(-) create mode 100644 circuits/circuits/dsc/instances/dsc_rsapss_sha256_3_3072.circom create mode 100644 circuits/circuits/dsc/instances/dsc_rsapss_sha256_3_4096.circom create mode 100644 circuits/circuits/dsc/instances/dsc_rsapss_sha256_65537_2048.circom create mode 100644 circuits/circuits/dsc/instances/dsc_rsapss_sha256_65537_3072.circom create mode 100644 circuits/circuits/dsc/instances/dsc_rsapss_sha384_65537_3072.circom create mode 100644 circuits/circuits/dsc/instances/dsc_rsapss_sha384_65537_4096.circom create mode 100644 circuits/tests/dsc/dsc.test.ts create mode 100644 circuits/tests/dsc/test_cases.ts create mode 100644 common/src/mock_certificates/sha256_rsapss_3072/mock_csca.pem create mode 100644 common/src/mock_certificates/sha256_rsapss_3_3072/mock_csca.pem create mode 100644 common/src/mock_certificates/sha256_rsapss_3_4096/mock_csca.pem create mode 100644 common/src/mock_certificates/sha256_rsapss_4096/mock_csca.crt create mode 100644 common/src/mock_certificates/sha256_rsapss_4096/mock_dsc.crt create mode 100644 common/src/mock_certificates/sha384_rsapss_3072/mock_csca.pem create mode 100644 common/src/mock_certificates/sha384_rsapsss_4096/mock_csca.pem diff --git a/circuits/circuits/dsc/instances/dsc_rsapss_sha256_3_3072.circom b/circuits/circuits/dsc/instances/dsc_rsapss_sha256_3_3072.circom new file mode 100644 index 00000000..5e1c6f44 --- /dev/null +++ b/circuits/circuits/dsc/instances/dsc_rsapss_sha256_3_3072.circom @@ -0,0 +1,5 @@ +pragma circom 2.1.9; + +include "../dsc.circom"; + +component main { public [ merkle_root ] } = DSC(16, 120, 35, 120, 35, 1664, 525, 12); diff --git a/circuits/circuits/dsc/instances/dsc_rsapss_sha256_3_4096.circom b/circuits/circuits/dsc/instances/dsc_rsapss_sha256_3_4096.circom new file mode 100644 index 00000000..59eaa6df --- /dev/null +++ b/circuits/circuits/dsc/instances/dsc_rsapss_sha256_3_4096.circom @@ -0,0 +1,5 @@ +pragma circom 2.1.9; + +include "../dsc.circom"; + +component main { public [ merkle_root ] } = DSC(17, 120, 35, 120, 35, 1664, 525, 12); diff --git a/circuits/circuits/dsc/instances/dsc_rsapss_sha256_65537_2048.circom b/circuits/circuits/dsc/instances/dsc_rsapss_sha256_65537_2048.circom new file mode 100644 index 00000000..5d4a721a --- /dev/null +++ b/circuits/circuits/dsc/instances/dsc_rsapss_sha256_65537_2048.circom @@ -0,0 +1,5 @@ +pragma circom 2.1.9; + +include "../dsc.circom"; + +component main { public [ merkle_root ] } = DSC(4, 120, 35, 120, 35, 1664, 525, 12); diff --git a/circuits/circuits/dsc/instances/dsc_rsapss_sha256_65537_3072.circom b/circuits/circuits/dsc/instances/dsc_rsapss_sha256_65537_3072.circom new file mode 100644 index 00000000..bc32b60c --- /dev/null +++ b/circuits/circuits/dsc/instances/dsc_rsapss_sha256_65537_3072.circom @@ -0,0 +1,5 @@ +pragma circom 2.1.9; + +include "../dsc.circom"; + +component main { public [ merkle_root ] } = DSC(19, 120, 35, 120, 35, 1664, 525, 12); diff --git a/circuits/circuits/dsc/instances/dsc_rsapss_sha256_65537_4096.circom b/circuits/circuits/dsc/instances/dsc_rsapss_sha256_65537_4096.circom index 9ee046ea..cd56fd46 100644 --- a/circuits/circuits/dsc/instances/dsc_rsapss_sha256_65537_4096.circom +++ b/circuits/circuits/dsc/instances/dsc_rsapss_sha256_65537_4096.circom @@ -2,4 +2,4 @@ pragma circom 2.1.9; include "../dsc.circom"; -component main { public [ merkle_root ] } = DSC(12, 120, 35, 120, 35, 1664, 256, 12); +component main { public [ merkle_root ] } = DSC(12, 120, 35, 120, 35, 1664, 525, 12); diff --git a/circuits/circuits/dsc/instances/dsc_rsapss_sha384_65537_3072.circom b/circuits/circuits/dsc/instances/dsc_rsapss_sha384_65537_3072.circom new file mode 100644 index 00000000..59bce5a7 --- /dev/null +++ b/circuits/circuits/dsc/instances/dsc_rsapss_sha384_65537_3072.circom @@ -0,0 +1,5 @@ +pragma circom 2.1.9; + +include "../dsc.circom"; + +component main { public [ merkle_root ] } = DSC(18, 120, 35, 120, 35, 1664, 525, 12); diff --git a/circuits/circuits/dsc/instances/dsc_rsapss_sha384_65537_4096.circom b/circuits/circuits/dsc/instances/dsc_rsapss_sha384_65537_4096.circom new file mode 100644 index 00000000..07e62706 --- /dev/null +++ b/circuits/circuits/dsc/instances/dsc_rsapss_sha384_65537_4096.circom @@ -0,0 +1,5 @@ +pragma circom 2.1.9; + +include "../dsc.circom"; + +component main { public [ merkle_root ] } = DSC(35, 120, 35, 120, 35, 1664, 525, 12); diff --git a/circuits/circuits/utils/passport/signatureAlgorithm.circom b/circuits/circuits/utils/passport/signatureAlgorithm.circom index 6a260ce1..c16c1c60 100644 --- a/circuits/circuits/utils/passport/signatureAlgorithm.circom +++ b/circuits/circuits/utils/passport/signatureAlgorithm.circom @@ -32,6 +32,7 @@ pragma circom 2.1.9; 32: rsa_sha256_3_4096 33: rsa_sha1_3_4096 34: rsa_sha384_65537_4096 + 35: rsapss_sha384_65537_4096 */ function getHashLength(signatureAlgorithm) { @@ -128,6 +129,9 @@ function getHashLength(signatureAlgorithm) { if (signatureAlgorithm == 34) { return 384; } + if (signatureAlgorithm == 35) { + return 384; + } return 0; } @@ -222,6 +226,9 @@ function getKeyLength(signatureAlgorithm) { if (signatureAlgorithm == 34) { return 4096; } + if (signatureAlgorithm == 35) { + return 4096; + } return 0; } @@ -317,6 +324,9 @@ function getKLengthFactor(signatureAlgorithm) { if (signatureAlgorithm == 34) { return 1; } + if (signatureAlgorithm == 35) { + return 1; + } return 0; } @@ -374,5 +384,8 @@ function getExponentBits(signatureAlgorithm) { if (signatureAlgorithm == 34) { return 17; } + if (signatureAlgorithm == 35) { + return 17; + } return 0; } diff --git a/circuits/circuits/utils/passport/signatureVerifier.circom b/circuits/circuits/utils/passport/signatureVerifier.circom index 4aeec8ec..8cdc1ec5 100644 --- a/circuits/circuits/utils/passport/signatureVerifier.circom +++ b/circuits/circuits/utils/passport/signatureVerifier.circom @@ -30,6 +30,7 @@ template SignatureVerifier(signatureAlgorithm, n, k) { || signatureAlgorithm == 14 || signatureAlgorithm == 15 || signatureAlgorithm == 31 + || signatureAlgorithm == 34 ) { component rsa65537 = VerifyRsa65537Pkcs1v1_5(n, k, HASH_LEN_BITS); for (var i = 0; i < msg_len; i++) { @@ -45,6 +46,7 @@ template SignatureVerifier(signatureAlgorithm, n, k) { if ( signatureAlgorithm == 13 || signatureAlgorithm == 32 + || signatureAlgorithm == 33 ) { component rsa3 = VerifyRsa3Pkcs1v1_5(n, k, HASH_LEN_BITS); for (var i = 0; i < msg_len; i++) { @@ -61,6 +63,7 @@ template SignatureVerifier(signatureAlgorithm, n, k) { || signatureAlgorithm == 12 || signatureAlgorithm == 18 || signatureAlgorithm == 19 + || signatureAlgorithm == 35 ) { var pubKeyBitsLength = getKeyLength(signatureAlgorithm); var SALT_LEN = HASH_LEN_BITS / 8; diff --git a/circuits/package.json b/circuits/package.json index fcf368c4..b7ddf512 100644 --- a/circuits/package.json +++ b/circuits/package.json @@ -5,7 +5,7 @@ "license": "MIT", "scripts": { "test": "yarn ts-mocha --max-old-space-size=8192 'tests/**/*.test.ts' 'tests/*.test.ts' --exit", - "test-dsc": "yarn ts-mocha --max-old-space-size=8192 'tests/dsc.test.ts' --exit", + "test-dsc": "yarn ts-mocha --max-old-space-size=8192 'tests/dsc/dsc.test.ts' --exit", "test-prove": "yarn ts-mocha --max-old-space-size=40960 'tests/prove.test.ts' --exit", "test-rsa": "yarn ts-mocha --max-old-space-size=8192 'tests/utils/rsaPkcs1v1_5.test.ts' --exit", "test-rsa-pss": "yarn ts-mocha --max-old-space-size=8192 'tests/utils/rsapss.test.ts' --exit", diff --git a/circuits/tests/dsc/dsc.test.ts b/circuits/tests/dsc/dsc.test.ts new file mode 100644 index 00000000..4e489bdd --- /dev/null +++ b/circuits/tests/dsc/dsc.test.ts @@ -0,0 +1,259 @@ +import { assert, expect } from 'chai'; +import path from 'path'; +import { wasm as wasm_tester } from 'circom_tester'; +import { generateCircuitInputsDSC } from '../../../common/src/utils/csca'; +import { + mock_dsc_sha1_rsa_4096, + mock_dsc_sha256_rsa_4096, + mock_dsc_sha256_rsapss_4096, + mock_csca_sha1_rsa_4096, + mock_csca_sha256_rsa_4096, + mock_csca_sha256_rsapss_4096, + mock_dsc_sha384_brainpoolP256r1, + mock_dsc_sha256_brainpoolP256r1, + mock_csca_brainpoolP256r1, + mock_csca_sha256_brainpoolP256r1, + mock_dsc_sha256_brainpoolP256r1_256, + mock_csca_sha256_brainpoolP256r1_256, + mock_dsc_sha256_brainpoolP224r1, + mock_csca_sha256_brainpoolP224r1_224, + mock_dsc_sha256_brainpoolP224r1_224, + mock_dsc_sha1_ecdsa, + mock_dsc_sha1_ecdsa_256, + mock_csca_sha1_ecdsa_256, + mock_csca_sha1_secp256r1_256, + mock_dsc_sha256_secp256r1, + mock_csca_sha256_secp256r1, + mock_dsc_sha1_secp256r1_256, + mock_dsc_sha256_secp384r1_384, + mock_csca_sha256_secp384r1_384, + mock_dsc_sha384_brainpoolP256r1_256, + mock_csca_sha384_brainpoolP256r1_256, + mock_dsc_sha384_brainpoolP384r1, + mock_dsc_sha384_brainpoolP384r1_384, + mock_csca_sha384_brainpoolP384r1_384, + mock_dsc_sha384_secp348r1_348, + mock_csca_sha384_secp348r1_348, + mock_dsc_sha512_brainpoolP256r1_256, + mock_csca_sha512_brainpoolP256r1_256, + mock_dsc_sha512_brainpoolP384r1_384, + mock_csca_sha512_brainpoolP384r1_384, + mock_dsc_sha1_secp384r1_384, + mock_csca_sha1_secp384r1_384, + mock_dsc_sha1_brainpoolP256r1_256, + mock_csca_sha1_brainpoolP256r1_256, + mock_dsc_sha256_rsapss_2048, + mock_csca_sha256_rsapss_2048, + mock_dsc_sha256_rsapss_3_3072, + mock_dsc_sha256_rsapss_65537_3072, + mock_csca_sha256_rsapss_65537_3072, + mock_dsc_sha256_rsapss_3072, + mock_csca_sha256_rsapss_3072, + mock_csca_sha256_rsapss_3_3072, + mock_dsc_sha256_rsapss_3_4096, + mock_csca_sha256_rsapss_3_4096, + mock_dsc_sha384_rsapss_65537_3072, + mock_csca_sha384_rsapss_65537_3072, + mock_dsc_sha384_rsapss_65537_4096, + mock_csca_sha384_rsapss_65537_4096, + mock_dsc_sha1_rsa_2048, + mock_csca_sha1_rsa_2048, + mock_dsc_sha1_rsa_3072, + mock_csca_sha1_rsa_3072, + mock_dsc_sha1_rsa_3_4096, + mock_csca_sha1_rsa_3_4096, + mock_csca_sha1_rsa_3_2048, + mock_dsc_sha1_rsa_3_2048, + mock_dsc_sha1_rsa_3_3072, + mock_csca_sha1_rsa_3_3072, + mock_dsc_sha256_rsa_2048, + mock_csca_sha256_rsa_2048, + mock_dsc_sha256_rsa_65537_3072, + mock_csca_sha256_rsa_65537_3072, + mock_dsc_sha384_rsa_65537_4096, + mock_csca_sha384_rsa_65537_4096, + mock_dsc_sha512_rsa_65537_4096, + mock_csca_sha512_rsa_65537_4096, + mock_dsc_sha256_rsa_3_4096, + mock_csca_sha256_rsa_3_4096, +} from '../../../common/src/constants/mockCertificates'; +import { max_cert_bytes } from '../../../common/src/constants/constants'; +import { getCircuitName } from '../../../common/src/utils/certificate_parsing/parseCertificateSimple'; +import { fullSigAlgs, sigAlgs } from './test_cases'; + +const testSuite = process.env.FULL_TEST_SUITE === 'true' ? fullSigAlgs : sigAlgs; + +testSuite.forEach(({ sigAlg, hashFunction, domainParameter, keyLength }) => { + describe(`DSC chain certificate - ${hashFunction.toUpperCase()} ${sigAlg.toUpperCase()} ${domainParameter.toUpperCase()} ${keyLength}`, function () { + this.timeout(0); // Disable timeout + let circuit; + + // Mock certificates based on signature algorithm and hash function + let dscCertPem; + let cscaCertPem; + const salt = '0'; + + switch (`${sigAlg}_${hashFunction}_${domainParameter}_${keyLength}`) { + case 'rsa_sha256_65537_4096': + dscCertPem = mock_dsc_sha256_rsa_4096; + cscaCertPem = mock_csca_sha256_rsa_4096; + break; + case 'rsa_sha256_65537_2048': + dscCertPem = mock_dsc_sha256_rsa_2048; + cscaCertPem = mock_csca_sha256_rsa_2048; + break; + case 'rsa_sha256_65537_3072': + dscCertPem = mock_dsc_sha256_rsa_65537_3072; + cscaCertPem = mock_csca_sha256_rsa_65537_3072; + break; + case 'rsa_sha256_3_4096': + dscCertPem = mock_dsc_sha256_rsa_3_4096; + cscaCertPem = mock_csca_sha256_rsa_3_4096; + break; + case 'rsa_sha1_65537_2048': + dscCertPem = mock_dsc_sha1_rsa_2048; + cscaCertPem = mock_csca_sha1_rsa_2048; + break; + case 'rsa_sha1_65537_3072': + dscCertPem = mock_dsc_sha1_rsa_3072; + cscaCertPem = mock_csca_sha1_rsa_3072; + break; + case 'rsa_sha1_65537_4096': + dscCertPem = mock_dsc_sha1_rsa_4096; + cscaCertPem = mock_csca_sha1_rsa_4096; + break; + case 'rsa_sha1_3_2048': + dscCertPem = mock_dsc_sha1_rsa_3_2048; + cscaCertPem = mock_csca_sha1_rsa_3_2048; + break; + case 'rsa_sha1_3_3072': + dscCertPem = mock_dsc_sha1_rsa_3_3072; + cscaCertPem = mock_csca_sha1_rsa_3_3072; + break; + case 'rsa_sha1_3_4096': + dscCertPem = mock_dsc_sha1_rsa_3_4096; + cscaCertPem = mock_csca_sha1_rsa_3_4096; + break; + case 'rsa_sha384_65537_4096': + dscCertPem = mock_dsc_sha384_rsa_65537_4096; + cscaCertPem = mock_csca_sha384_rsa_65537_4096; + break; + case 'rsa_sha512_65537_4096': + dscCertPem = mock_dsc_sha512_rsa_65537_4096; + cscaCertPem = mock_csca_sha512_rsa_65537_4096; + break; + case 'rsapss_sha256_65537_2048': + dscCertPem = mock_dsc_sha256_rsapss_2048; + cscaCertPem = mock_csca_sha256_rsapss_2048; + break; + case 'rsapss_sha256_65537_3072': + dscCertPem = mock_dsc_sha256_rsapss_65537_3072; + cscaCertPem = mock_csca_sha256_rsapss_65537_3072; + break; + case 'rsapss_sha256_65537_4096': + dscCertPem = mock_dsc_sha256_rsapss_4096; + cscaCertPem = mock_csca_sha256_rsapss_4096; + break; + case 'rsapss_sha256_3_3072': + dscCertPem = mock_dsc_sha256_rsapss_3_3072; + cscaCertPem = mock_csca_sha256_rsapss_3_3072; + break; + case 'rsapss_sha256_3_4096': + dscCertPem = mock_dsc_sha256_rsapss_3_4096; + cscaCertPem = mock_csca_sha256_rsapss_3_4096; + break; + case 'rsapss_sha384_65537_3072': + dscCertPem = mock_dsc_sha384_rsapss_65537_3072; + cscaCertPem = mock_csca_sha384_rsapss_65537_3072; + break; + case 'rsapss_sha384_65537_4096': + dscCertPem = mock_dsc_sha384_rsapss_65537_4096; + cscaCertPem = mock_csca_sha384_rsapss_65537_4096; + break; + case 'ecdsa_sha1_secp256r1_256': + dscCertPem = mock_csca_sha1_secp256r1_256; //mock_dsc_sha1_secp256r1_256; + cscaCertPem = mock_csca_sha1_secp256r1_256; + break; + case 'ecdsa_sha1_secp384r1_384': + dscCertPem = mock_dsc_sha1_secp384r1_384; + cscaCertPem = mock_csca_sha1_secp384r1_384; + break; + case 'ecdsa_sha1_brainpoolP256r1_256': + dscCertPem = mock_dsc_sha1_brainpoolP256r1_256; + cscaCertPem = mock_csca_sha1_brainpoolP256r1_256; + break; + case 'ecdsa_sha256_secp256r1_256': + dscCertPem = mock_dsc_sha256_secp256r1; + cscaCertPem = mock_csca_sha256_secp256r1; + break; + case 'ecdsa_sha256_secp384r1_384': + dscCertPem = mock_dsc_sha256_secp384r1_384; + cscaCertPem = mock_csca_sha256_secp384r1_384; + break; + case 'ecdsa_sha256_brainpoolP256r1_256': + dscCertPem = mock_dsc_sha256_brainpoolP256r1_256; + cscaCertPem = mock_csca_sha256_brainpoolP256r1_256; + break; + case 'ecdsa_sha256_brainpoolP224r1_224': + dscCertPem = mock_dsc_sha256_brainpoolP224r1_224; + cscaCertPem = mock_csca_sha256_brainpoolP224r1_224; + break; + case 'ecdsa_sha384_brainpoolP256r1_256': + dscCertPem = mock_dsc_sha384_brainpoolP256r1_256; + cscaCertPem = mock_csca_sha384_brainpoolP256r1_256; + break; + case 'ecdsa_sha384_brainpoolP384r1_384': + dscCertPem = mock_dsc_sha384_brainpoolP384r1_384; + cscaCertPem = mock_csca_sha384_brainpoolP384r1_384; + break; + case 'ecdsa_sha384_secp384r1_384': + dscCertPem = mock_dsc_sha384_secp348r1_348; + cscaCertPem = mock_csca_sha384_secp348r1_348; + break; + case 'ecdsa_sha512_brainpoolP256r1_256': + dscCertPem = mock_dsc_sha512_brainpoolP256r1_256; + cscaCertPem = mock_csca_sha512_brainpoolP256r1_256; + break; + case 'ecdsa_sha512_brainpoolP384r1_384': + dscCertPem = mock_dsc_sha512_brainpoolP384r1_384; + cscaCertPem = mock_csca_sha512_brainpoolP384r1_384; + break; + default: + throw new Error('Unsupported signature algorithm and hash function combination'); + } + + const inputs = generateCircuitInputsDSC( + BigInt(salt).toString(), + dscCertPem, + max_cert_bytes, + true + ); + + before(async () => { + circuit = await wasm_tester( + path.join( + __dirname, + `../../circuits/dsc/instances/${getCircuitName('dsc', sigAlg, hashFunction, domainParameter, keyLength)}.circom` + ), + { + include: [ + 'node_modules', + './node_modules/@zk-kit/binary-merkle-root.circom/src', + './node_modules/circomlib/circuits', + ], + } + ); + }); + + it('should compute the correct output', async () => { + const witness = await circuit.calculateWitness(inputs.inputs, true); + console.log('\x1b[34m%s\x1b[0m', 'witness generated ', sigAlg); + // const blinded_dsc_commitment = (await circuit.getOutput(witness, ['blinded_dsc_commitment'])) + // .blinded_dsc_commitment; + // console.log('\x1b[34m%s\x1b[0m', 'blinded_dsc_commitment: ', blinded_dsc_commitment); + // const merkle_root = (await circuit.getOutput(witness, ['merkle_root'])).merkle_root; + // console.log('\x1b[34m%s\x1b[0m', 'merkle_root: ', merkle_root); + // expect(blinded_dsc_commitment).to.be.not.null; + }); + }); +}); diff --git a/circuits/tests/dsc/test_cases.ts b/circuits/tests/dsc/test_cases.ts new file mode 100644 index 00000000..efa078d6 --- /dev/null +++ b/circuits/tests/dsc/test_cases.ts @@ -0,0 +1,36 @@ +export const sigAlgs = [ + { sigAlg: 'rsa', hashFunction: 'sha1', domainParameter: '3', keyLength: '4096' }, + // { sigAlg: 'rsa', hashFunction: 'sha384', domainParameter: '65537', keyLength: '4096' }, + { sigAlg: 'rsapss', hashFunction: 'sha256', domainParameter: '65537', keyLength: '3072' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha1', domainParameter: 'secp256r1', keyLength: '256' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha512', domainParameter: 'brainpoolP384r1', keyLength: '384' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha384', domainParameter: 'brainpoolP256r1', keyLength: '256' }, +]; + +export const fullSigAlgs = [ + { sigAlg: 'rsa', hashFunction: 'sha1', domainParameter: '65537', keyLength: '4096' }, + { sigAlg: 'rsa', hashFunction: 'sha1', domainParameter: '3', keyLength: '4096' }, + { sigAlg: 'rsa', hashFunction: 'sha256', domainParameter: '65537', keyLength: '4096' }, + { sigAlg: 'rsa', hashFunction: 'sha384', domainParameter: '65537', keyLength: '4096' }, + { sigAlg: 'rsa', hashFunction: 'sha512', domainParameter: '65537', keyLength: '4096' }, + { sigAlg: 'rsa', hashFunction: 'sha256', domainParameter: '3', keyLength: '4096' }, + { sigAlg: 'rsapss', hashFunction: 'sha256', domainParameter: '65537', keyLength: '4096' }, + { sigAlg: 'rsapss', hashFunction: 'sha256', domainParameter: '65537', keyLength: '2048' }, + { sigAlg: 'rsapss', hashFunction: 'sha256', domainParameter: '65537', keyLength: '3072' }, + { sigAlg: 'rsapss', hashFunction: 'sha256', domainParameter: '3', keyLength: '3072' }, + { sigAlg: 'rsapss', hashFunction: 'sha256', domainParameter: '3', keyLength: '4096' }, + { sigAlg: 'rsapss', hashFunction: 'sha384', domainParameter: '65537', keyLength: '3072' }, + { sigAlg: 'rsapss', hashFunction: 'sha384', domainParameter: '65537', keyLength: '4096' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha1', domainParameter: 'secp256r1', keyLength: '256' }, + // // { sigAlg: 'ecdsa', hashFunction: 'sha1', domainParameter: 'secp384r1', keyLength: '384' }, //killed + // { sigAlg: 'ecdsa', hashFunction: 'sha1', domainParameter: 'brainpoolP256r1', keyLength: '256' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha256', domainParameter: 'brainpoolP256r1', keyLength: '256' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha256', domainParameter: 'secp256r1', keyLength: '256' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha256', domainParameter: 'secp384r1', keyLength: '384' }, + + // { sigAlg: 'ecdsa', hashFunction: 'sha384', domainParameter: 'brainpoolP256r1', keyLength: '256' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha384', domainParameter: 'brainpoolP384r1', keyLength: '384' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha384', domainParameter: 'secp384r1', keyLength: '384' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha512', domainParameter: 'brainpoolP256r1', keyLength: '256' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha512', domainParameter: 'brainpoolP384r1', keyLength: '384' }, +]; diff --git a/common/pubkeys/serialized_csca_tree.json b/common/pubkeys/serialized_csca_tree.json index 00d4a37a..152e0640 100644 --- a/common/pubkeys/serialized_csca_tree.json +++ b/common/pubkeys/serialized_csca_tree.json @@ -1 +1 @@ -[["3072363808626123104135925263732757024577019217365775437960336669287589130147","4377638632519605930071082139861588118558175699360749942602119950697098360678","20699157141669045943703180799190706161802312722866093672976989823452603746642","18922393661078692490263433007192606341964526909486726140091553946096505859794","20129263039537196279018213770495252161246696438839873457128720225503725485038","7714499127613764388949922756132097142431016540952351499666214143198934832090","3029982012036821857956277334661546229638304381835477973554421659438871352378"],["19597393357030867422697635574213713906376456347782820588592675113984699030702","20790778313247201423913333373712088102864187300712415097412253760093826883680","5606712314058945535113885907817066541203370227118779831580239385732730066899","12259760431166816528575576454529235183812315044389396668977309150589287003000"],["5773306190815246389265142972359984468160098644963572453196471113942118838823","16474608454905605856668965021828569147926836273332818788422558988583639350772"],["15214792541011749306909848582595159154333128031754709731393248957192186003948"],["2037353317503652001574417348730060130990628386278662021400361734464624343988"],["9951955655339055592084501019497765684279214376473015219488027576944763965945"],["11562569504449267108775212930998904819850639513709052054443147523110820330971"],["10524163904884529249270419077727631523914723022784446704570125650374924831065"],["2670545888974227195359180788337569245020457633624319460230807082158370554209"],["5394168467854652405039339203298792057739987919673915716406878581345099478077"],["15244760528444592847056694681810280570344339851538846585180513055954360349074"],["14583459595285094414958376146704155635454740581065851321235904325541998607878"],["4828991439314899772118435134806366013528004298454037083822768772252952583248"]] \ No newline at end of file +[["3072363808626123104135925263732757024577019217365775437960336669287589130147","4377638632519605930071082139861588118558175699360749942602119950697098360678","20699157141669045943703180799190706161802312722866093672976989823452603746642","18922393661078692490263433007192606341964526909486726140091553946096505859794","20129263039537196279018213770495252161246696438839873457128720225503725485038","7714499127613764388949922756132097142431016540952351499666214143198934832090","3029982012036821857956277334661546229638304381835477973554421659438871352378","18826772700753965089838530522747697693529380206667390655223683892300253228482","7754801866259753871376280942228986649722406962132808312595926420891274630764","9298642488045440917435106802955394469894066482772708614168131869635983070776","15349040822759549354113676323111979055252506927399535241710497836533688349309","11723140122805046442848135959025566427790366034624865013525753329624741479329","12292588451340943129078612534488265660366889025422675366286465774009201232235"],["19597393357030867422697635574213713906376456347782820588592675113984699030702","20790778313247201423913333373712088102864187300712415097412253760093826883680","5606712314058945535113885907817066541203370227118779831580239385732730066899","4283127000018887577368006541420602734574963717523043607769030637197851897733","13553454673260512086202636401819232072921339452235364507547650177706709960188","17439764051379106428789135082047790938698024499585068996384903017698846779436","12414204780431046025183778462952579312816785933516652339469656204680380068033"],["5773306190815246389265142972359984468160098644963572453196471113942118838823","16431590159131035766135068301369368781575233422220643214097224273177973006045","1177016131709892649486488261670423460396332970401297555253476104008220930231","7851807547816544239084126193087077762393632660499312256916810869087829880353"],["9297450049830100790518363906502675464223096898636852751831005247255965570415","20114846124732823131770140452169930855361019890565771581498155661726469639089"],["13659568303663144754770874104231645663473151353148284822840285061996276826064"],["6645688918439128883312663556099162417194657079953562198567289331194043817838"],["21328632770518008781614220795691636587952769462496549397825357565356748820590"],["20012072945655402879067815148147019976015303553176631658743143721194508186627"],["16474598413402134994271479240985104258341562101342886991082162311704702237428"],["9427706404025375328226968833354901922283420419149971398056934724701443995845"],["11625883285658212429816458384569266516341127662500784288288086465775663800357"],["21281366649150132017488313355457735904350322150987270951914908925753298547483"],["2229383633376275537935508748258776274539011059787295331988588487164086814502"]] \ No newline at end of file diff --git a/common/src/constants/constants.ts b/common/src/constants/constants.ts index 50d87b80..9c26bc0b 100644 --- a/common/src/constants/constants.ts +++ b/common/src/constants/constants.ts @@ -112,6 +112,7 @@ export enum SignatureAlgorithmIndex { rsa_sha256_3_4096 = 32, rsa_sha1_3_4096 = 33, rsa_sha384_65537_4096 = 34, + rsapss_sha384_65537_4096 = 35, } export const attributeToPosition = { diff --git a/common/src/constants/mockCertificates.ts b/common/src/constants/mockCertificates.ts index f1e5ef80..d1defcc1 100644 --- a/common/src/constants/mockCertificates.ts +++ b/common/src/constants/mockCertificates.ts @@ -774,101 +774,172 @@ nb03Vb90cletIyOwobD8mufnYD0ua3c4id0WopafR4MF91zr7CXEuvQVcOYfZKY/ export const mock_csca_sha384_rsapss_65537_3072 = ` -----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE-----`; export const mock_dsc_key_sha384_rsapss_65537_3072 = ` -----BEGIN PRIVATE KEY----- -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 -AHThNL5pYxeq+tNRsvPYY90= +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 +5iUtXM5uBlxMExHDZbFgOMxZrA== -----END PRIVATE KEY-----`; +export const mock_dsc_sha384_rsapss_65537_4096 = `-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE-----` + +export const mock_csca_sha384_rsapss_65537_4096 = `-----BEGIN CERTIFICATE----- +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 +Ckcuqxf+kA== +-----END CERTIFICATE-----` + export const mock_dsc_sha384_rsapss_65537_3072 = `-----BEGIN CERTIFICATE----- -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 -10b7qUNrwvURph+aXyMiamRoVvp6KA== +CWCGSAFlAwQCAgUAogMCATADggGBADUW3ZMsgaIV0PIa8oKzyq4xjrdZVJ4bacBV +Ia47eBDEcKpW1dXJIx638Lr7z85Jw01sVSraF739th7ilgA4RcZSSrYC9oYTCsCZ +hUDZPjwrd7FHblsAup/ajqovmsvuqAAEekbFG/AAFH3U7E4MSZ5zpqJa4ByvCXQ/ +r87L+tUucAxHepux9utxwv1SKOjmoYxBfmcM1bP/xgTZUDMNTP/pIOJ8/UP07Eed +MMUictI3+RXb3hZX2Gh0uo7OOMTZPoYcPKsZqzzfHn5ScSaW1S5xhQK2N4eX5xmz +5z/rBy3KBZz7qhvyRv3wau5RqXkF/zmQUkuK8IvCtdqFmzjz+ebqK1ZkHwetCJg5 +R3fyp/rO3lep70i0ug80fCNJfgMzjn3bj8MeZYc+TIpmHh6gJImXvb0sdmiHaPKq +Zlg5hXHy8e9QPkSUolEx+rTs3yesqiyhcCgU84Pah6JI/5FsYTQgxz5RA6C+/0VD +JiiJCLH5mYgg1892iok5fw5BJy/O8g== -----END CERTIFICATE----- `; @@ -928,123 +999,126 @@ nilE+U/aKB+AmG3VM/pCGZ4KGpDU36SgDZ4nwFo2v0oSI2OITUSzFnROKxWelxkn `; export const mock_csca_sha256_rsapss_3_4096 = `-----BEGIN CERTIFICATE----- -MIIFaTCCA1GgAwIBAgIUBLDEWBLHolBcAfAj5FihkI3d8ccwDQYJKoZIhvcNAQEL -BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM -GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNDEyMTIxMjIyNTdaFw0yNTEy -MTIxMjIyNTdaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw -HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIgMA0GCSqGSIb3DQEB -AQUAA4ICDQAwggIIAoICAQDydOy1SpmPOD/hp9dgnNfOtpvAW+4s9MThM4qz6iMX -fPBMrVZS0/LIdk15w2FTXRXO/82vKD3+UcOkWd5OuFTZtxrkU78L0nfUemhSGWrP -1/39BHbCxObxT8vnyRaJGSi2CoD0hE07m5ldguCwp+a3ITO3NDRn/DFl2XkqaOMm -h3WWWR9mTY2ZtODbs8tW+5AZyJRvvlaRNbeWzGdvbPnfoQ4Xp04OqxBiF+woHtBh -VT/i8Ya25GFsaCrVxNY2sQKSNnuJ+fM2jAfKVcDps1AjYnmuOSoLccWORJDpeXGB -z6dgpYIEMbSPQ0YgXLzKAu7tH4Tb3xBlSrnRTO3vWqUew9lGSiwWnQdrPXITw68C -wrS9umH3ZnHp3voHGyLwxRWTVITWOZvhFEw8SrbmQ2ZiavWkaqQP8DB+HqeXX0QI -8ugN47k/+DG+5Jf/xEWo2D3BEX4BY2jWSg75/YL3ql9FSturwxiJTKl2r5WjuwKu -qWOKrJqw7JT8zuJCr7s0GK4OzH+jHkFxl9+noTZ+gzzvuzxTpfd3rdkZ20IHq7ft -Qklrj51lGzJjSFj37xDCxs9Nd9as5/FObgvweJa6RT8ClSDb4D/Csfeo0DajyWK1 -fH2iQYVZd59+WnNdYb7P5b5uJPMwfmu7PljTe0zQmFriSKV4jkD+RuA4wxFHzPJO -2wIBA6NTMFEwHQYDVR0OBBYEFCXfq3ezogNpS2gg99W61eRSbbAhMB8GA1UdIwQY -MBaAFCXfq3ezogNpS2gg99W61eRSbbAhMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI -hvcNAQELBQADggIBACpy4FC2cIodrCOPZprjRD+ElrcQ5qSx7WLT9oF04rFAJoGi -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 +8GWMHSU= -----END CERTIFICATE-----`; export const mock_dsc_key_sha256_rsapss_3_4096 = `-----BEGIN PRIVATE KEY----- -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 -YB+6OfEWTqL61rgUMTbCi6YM5fJToQ== +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 +3qopvZAJ3bHNeV/IdMKQw47t53D/Pw== -----END PRIVATE KEY----- `; export const mock_dsc_sha256_rsapss_3_4096 = `-----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE-----`; export const mock_csca_key_sha256_rsapss_3_3072 = `-----BEGIN PRIVATE KEY----- @@ -1115,72 +1189,72 @@ EBBq0cqKIavLC0jvyktLHDgB8OP+fM/cU9Rjmp5GCXjDERDSbp4EmQTGMEtrb4nz -----END CERTIFICATE-----`; export const mock_dsc_key_sha256_rsapss_3_3072 = `-----BEGIN PRIVATE KEY----- -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 -/pE7Qvc1Voct0h8T4dQ0zA== +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 +C3qZJBBHeMvk9/0b75QngA== -----END PRIVATE KEY-----`; export const mock_dsc_sha256_rsapss_3_3072 = `-----BEGIN CERTIFICATE----- -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 -ruZ86kNVDqbSZ6qZjjQoMrLvKQg= +hkgBZQMEAgEFAKIDAgEgA4IBgQBv6xsy6a7K77ai70oZkaaBSx9ydENdlUDH1hha +aXBwJu1FqTgRvbWv1TX4j3EfsTNrr3knaCiLRPa+bxY2eQqsd9jpxDQ/YvCcS8fI +evEV1L/lrEqGfs6EJNjq2qHfusK6389j8wuDVjzBaidTythS4E0SriwnB1IHWBI+ +sRH5iwfKSlWBL9ZM23e79xFS/9Bzk5scrsPseBMATJufy84lD3gttjvXCBSLxiyK +p3vLQNjnN/pgeThFgWujfTlLdD3/iQ5qXOCpRAT3CzNK7txVVp/nGCTROke4te+X +pyPh1f2n0mV8rFWMmk1ukDX6eoh+pVQZg0MlZ7/MqNumXQg/OuDiDrMjDPJY4ihX +3MdpfGj3dJ7fLr8jkoq8WDwvNUiOhyM1bHOFpT8xNcbU8Oko8XnzN36mv2Dq9efw +MuY+SXQa7GoZwbbHdEG1ogwo0nm76+fR6ADgOyM0Xf92Zfdba/g6n3DOlEcEWyG0 +S53ZngBKxBaM5dBLwoi37RJRun4= -----END CERTIFICATE-----`; export const mock_dsc_sha256_rsapss_4096 = `-----BEGIN CERTIFICATE----- diff --git a/common/src/constants/skiPem.ts b/common/src/constants/skiPem.ts index 661ec456..24bd2621 100644 --- a/common/src/constants/skiPem.ts +++ b/common/src/constants/skiPem.ts @@ -27,6 +27,16 @@ export const SKI_PEM_DEV = { `-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUPz7c9K8GCz4jniW5VVCaDtOrAL8wDQYJKoZIhvcNAQEN\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMDkxNDQ1MDNaFw0yNjAx\nMDkxNDQ1MDNaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB\nAQUAA4ICDwAwggIKAoICAQDVFPLGluHXqyiBo04jP+VgM+Sgk21grrtBCTLBCCDB\n2WcHWj+nXRbSk5i/tnmQgDUY++qg+bD5UzLEiufyDyi6tbTUGvuXOneHHNTt1iNr\nxm9oj3fxH1FXwbCc0BjcyO+Zaz3f56UxDRbBQJtE6DO0cCI2FRrPTLfjbaRO7JZw\nPojd0+8IQyY6iiUuBosk1UCa1zpjoPWX79Bxf4JSTF47u8/y6pvetNW5CnuBGzf4\n4UuAINaTaqjg6t9Iy0wOPC51A57yZgg40COr8kBTmSdwD+UmuYiNC7fKvFNosiKJ\nrMbd/YT8Za1KHRi9RMe4DIn0/MSk5gVFZXpgxpqe+1C6fTKbkA6gFKsY8h/eA49m\nimVqgDTRCF8BWw1FFiKa3q2mROr3y6TqOlIsmsqKHOEgaiAVM7THNICGiPWCcIrh\nDqeMuSjKEqSNMLdU8mYgpcPOQuaWwISIO4VgTpSWTRo+d3vvhpTEKd0GDUy6drWu\nFHvfmbkQiZbYbzoCf75vhYcYCxKtthLTLLFYFKeve5IxbRkx0/OIdUK5aYeSOyhn\nHL+32icgWnbp7pNmq7R0VurmKvg0x0vF2G+PeBN9EIYI6JhRVLkmRvuNCf57f50t\n64TgThE0UhCRsH0a/Lyzl6PCZ9shiqblXgucF4ANz6nUoTzzno3XXThroroSt0Cz\nRwIDAQABo1MwUTAdBgNVHQ4EFgQUV89v6EXR8fbV8ZDW28FXPHEt0i8wHwYDVR0j\nBBgwFoAUV89v6EXR8fbV8ZDW28FXPHEt0i8wDwYDVR0TAQH/BAUwAwEB/zANBgkq\nhkiG9w0BAQ0FAAOCAgEAt8DVWwOgOAsG9aganHCb4/h/2fNMYD1fAUScGVlwCzbs\nXaWm3PoGRVwM9nh8LSpJ9fi8aicSqaFU1wiN2kf/YRO2nzt9l8wuqfyriu91TenN\nzRExtGaXYZmsB8kCo/pN0VBM48OP9wxV7rejCHhohSrYnvDl0EK3cSfcvTY2xC61\nPo1kZInD7cOXL+iQc27e8bmQ2xawnTL78jHneVDre2ZShMcEED220fIOIu9TYL5e\ncEafPxO1SRRgABLgPchRHCs+sHMIdPjyym3n4HLGk6ORcY2WwhNdBtxQoIbTwrjX\nJr+aNyH9bQQ6Vf+F/DAIqUph5g5+AiJgezU2KhYG+qgb+6rtjHtcMpMrkDGW6pNl\nQcL4O/yvfNFQLfy+oN9BM35Az8SnXsDV+Ou5hTK0ICHOsXnTwz9EWliolauf7asP\ntea7m8tJsko+04nKmGg2zkgCVEtqeLwFsNLL+UaGnj8A7AxPyt6PzHReRJDcP83e\n086xdTbmKI1Lno9ZoIebzlBV1u2I2tnj/CoMVgfZnFVSmmHerka7KlqKV5xsoeX6\n3/sx9kjzFyZ5CeGgyv0oIGgPHAg9twAeYbdb2Kr+ZAuTI4Xn/59iWvDtZyY3l3wd\nEs7c7TRmFjwtpuiGpa6n1PSG75XJps18jhgt6Xpok/xttk7x+SNIwMKUQrbK+hA=\n-----END CERTIFICATE-----`, '57cf6fe845d1f1f6d5f190d6dbc1573c712dd22f': `-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUPz7c9K8GCz4jniW5VVCaDtOrAL8wDQYJKoZIhvcNAQEN\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTAxMDkxNDQ1MDNaFw0yNjAx\nMDkxNDQ1MDNaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB\nAQUAA4ICDwAwggIKAoICAQDVFPLGluHXqyiBo04jP+VgM+Sgk21grrtBCTLBCCDB\n2WcHWj+nXRbSk5i/tnmQgDUY++qg+bD5UzLEiufyDyi6tbTUGvuXOneHHNTt1iNr\nxm9oj3fxH1FXwbCc0BjcyO+Zaz3f56UxDRbBQJtE6DO0cCI2FRrPTLfjbaRO7JZw\nPojd0+8IQyY6iiUuBosk1UCa1zpjoPWX79Bxf4JSTF47u8/y6pvetNW5CnuBGzf4\n4UuAINaTaqjg6t9Iy0wOPC51A57yZgg40COr8kBTmSdwD+UmuYiNC7fKvFNosiKJ\nrMbd/YT8Za1KHRi9RMe4DIn0/MSk5gVFZXpgxpqe+1C6fTKbkA6gFKsY8h/eA49m\nimVqgDTRCF8BWw1FFiKa3q2mROr3y6TqOlIsmsqKHOEgaiAVM7THNICGiPWCcIrh\nDqeMuSjKEqSNMLdU8mYgpcPOQuaWwISIO4VgTpSWTRo+d3vvhpTEKd0GDUy6drWu\nFHvfmbkQiZbYbzoCf75vhYcYCxKtthLTLLFYFKeve5IxbRkx0/OIdUK5aYeSOyhn\nHL+32icgWnbp7pNmq7R0VurmKvg0x0vF2G+PeBN9EIYI6JhRVLkmRvuNCf57f50t\n64TgThE0UhCRsH0a/Lyzl6PCZ9shiqblXgucF4ANz6nUoTzzno3XXThroroSt0Cz\nRwIDAQABo1MwUTAdBgNVHQ4EFgQUV89v6EXR8fbV8ZDW28FXPHEt0i8wHwYDVR0j\nBBgwFoAUV89v6EXR8fbV8ZDW28FXPHEt0i8wDwYDVR0TAQH/BAUwAwEB/zANBgkq\nhkiG9w0BAQ0FAAOCAgEAt8DVWwOgOAsG9aganHCb4/h/2fNMYD1fAUScGVlwCzbs\nXaWm3PoGRVwM9nh8LSpJ9fi8aicSqaFU1wiN2kf/YRO2nzt9l8wuqfyriu91TenN\nzRExtGaXYZmsB8kCo/pN0VBM48OP9wxV7rejCHhohSrYnvDl0EK3cSfcvTY2xC61\nPo1kZInD7cOXL+iQc27e8bmQ2xawnTL78jHneVDre2ZShMcEED220fIOIu9TYL5e\ncEafPxO1SRRgABLgPchRHCs+sHMIdPjyym3n4HLGk6ORcY2WwhNdBtxQoIbTwrjX\nJr+aNyH9bQQ6Vf+F/DAIqUph5g5+AiJgezU2KhYG+qgb+6rtjHtcMpMrkDGW6pNl\nQcL4O/yvfNFQLfy+oN9BM35Az8SnXsDV+Ou5hTK0ICHOsXnTwz9EWliolauf7asP\ntea7m8tJsko+04nKmGg2zkgCVEtqeLwFsNLL+UaGnj8A7AxPyt6PzHReRJDcP83e\n086xdTbmKI1Lno9ZoIebzlBV1u2I2tnj/CoMVgfZnFVSmmHerka7KlqKV5xsoeX6\n3/sx9kjzFyZ5CeGgyv0oIGgPHAg9twAeYbdb2Kr+ZAuTI4Xn/59iWvDtZyY3l3wd\nEs7c7TRmFjwtpuiGpa6n1PSG75XJps18jhgt6Xpok/xttk7x+SNIwMKUQrbK+hA=\n-----END CERTIFICATE-----`, + 'f55ec13787717ceda29208a0f202f7c951cc68fc': + `-----BEGIN CERTIFICATE-----\nMIIE0zCCAwegAwIBAgIUKIOezq4f7OExZXY4WKgDkmH/v/IwQQYJKoZIhvcNAQEK\nMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEF\nAKIDAgEgMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjUwMTEzMTMyMTI0WhcN\nMjYwMTEzMTMyMTI0WjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0\nZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBojANBgkqhkiG\n9w0BAQEFAAOCAY8AMIIBigKCAYEAptm+AZ9n4RhCJfsXcW8z6ikj5Bv5pjEhjbHO\nc8VDVE+iG6MzQozk3ChjT5aGYAX14So86hBwQ/pCCfK36F4lGVLCatuEucdOoEGf\nVdy76P20arcq3FqDr379cFIsue4xl0WywPeG3azs+cmxnbm5MxDieo6Eh+8AdKiM\njvMuZrId2Wc4MNAKyngK1gdlsnw+NEcAl0mXp/T6epTg7LlxUiKiVh720sxiJrvG\njoCfat80tzRt86HKozFELW46FRSlDHZHazZlahjBc1GDDEP5k1LSdRTl9kkP7i9d\nj0IlO/8H0Hr3uS512N06vkv9Mg0XkhXuiAdwzCHzDXqX6T5mkFtHAFZAswqYho1M\nJU5jQ13jUstUPa8d0n4g2MFOfSZUIC0wZhVoP2/4fVb2xWyE/RAUp7Sv7vUoE/jv\nhkDAQJAgR4pM8Y/O7/Nxqpv/Z9+KdXIwbHpj5hwTPf2oOq0KBPy/LdKaEsm/ideS\nVpUZfvIFw7kmkKfGu1h3Hex/qrq/AgMBAAGjUzBRMB0GA1UdDgQWBBT1XsE3h3F8\n7aKSCKDyAvfJUcxo/DAfBgNVHSMEGDAWgBT1XsE3h3F87aKSCKDyAvfJUcxo/DAP\nBgNVHRMBAf8EBTADAQH/MEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIBBQCh\nHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIAOCAYEAISUMYdiDzsHU\nbJmlPu/eyEdCPJeNeF7QNPmO2ILNECI378JspflPDfbOliYyQ92Y1zdc34OFbLs0\nD3i+V9PllcctWoY6s34ePgEHpdBcvMwvxZZ7+3Ec+GSlNJQyQI8xXgGCc9B+8zE8\nBbP17vKDn2X7ANeVFaWmpRoT+SgRipK1bPzat3Kmb/QEmoqw5us6hB4Vn9c8dWvG\na9Eg/Nz3yUftuUWzSSaHdSfXMyVYrCHco04g3tmwGS+dU9hQM7b+xGlJiXVtXHcV\n1bItJYBkXnH9V1kRX9otL/qzXer9FFrHNqJlp7VWsakr5BDBxRjj/DiaTetioeTf\nHTxSFTlEGGRSVMfQQ8l6m9F7YHNovPkbXcimANvniwH4msOKVhpP7kVuHGmeLhSf\nYvPI4BCa9qT1L4kMH6ViflSQii19ZaV7ihpThoDvP12Bfq9h+AkVSXWgeWYR8OcY\nUpkVJT9YOoRsCXxyjMf5qps4XCQ6DJpzX02jCVWdIGAwlhu4bL6c\n-----END CERTIFICATE-----`, + '0437e3123248f9b17e076da8fb888345960a8a22': + `-----BEGIN CERTIFICATE-----\nMIIE0TCCAwWgAwIBAgIUBLEeu0TdpxCEm0oXnFc5/J2KnVgwQQYJKoZIhvcNAQEK\nMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEF\nAKIDAgEgMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjUwMTAyMTMzNzIzWhcN\nMjYwMTAyMTMzNzIzWjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0\nZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBoDANBgkqhkiG\n9w0BAQEFAAOCAY0AMIIBiAKCAYEAx1d3aB3xFdMEpS6uW7I1BGTC3TlDVCgfr9KS\n8mehxZ3bjmtxEutAGkUoA2a2r9hqTgFOIganlYm2T4ss7q0lIpk1u/tsypsR1Htq\n8vynrWGHXxFZfStmu/YvhDqmkkYRkvBbZqDg7Kp58l3wGKoyssbpifRPcQ3KzYlD\n2AWRQpHOub/7oqC8eE7Ly+1vhJe2cVgbhiFb9aaSu6UfTjyz4dq9dP9CHymPntiW\nWM8EpgjtdnccjWkKwwqkLn65m0FvqJ2aachUGe2gI2biD5VUfuI9qDrvPw1Cj8+8\nTyj+NoijVKJ0ywAXyREuZNelJPJ0FTfXKBIeRIc8aJHT7jCNzgYx/9ADJZ5odZoD\nMFvfdMnY325xLJj1rLyjgBGRYf9IhU8smGQ9MAtT4S93Cv6uytjFy2o6SJ6K49/W\nVxFZsFqDmMGnx/TBnWJUj0VdEmdaT9jtCIaNcc1b0KUrq4FNaXEXJzubZu1IdfGe\naDPnX4B6V8YmcIIKfkEJDXg7y8MnAgEDo1MwUTAdBgNVHQ4EFgQUBDfjEjJI+bF+\nB22o+4iDRZYKiiIwHwYDVR0jBBgwFoAUBDfjEjJI+bF+B22o+4iDRZYKiiIwDwYD\nVR0TAQH/BAUwAwEB/zBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRww\nGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASADggGBACh2xUYNWW/cSGZN\nIMcQUsEVO6tcM7nOtCnI2n4xruz8iaNdMQnaptbckxtmF5+K31Ac6GBSYHD9qhcA\ncarVRVcl0aoORREjT+PDweC3/TSyrXfh9yAXIhYmYyFhfBZEAso3IEkFe2LLmtzg\ny8R65VJ/NF0tg8SjvEsnEkNl3CJ78tl6bUhkZKsYTlY/r8L0573ag+UuoyXIF0Z9\nge7qf1TG0Ktah7MeDT2oBhzGVw2sxLIdsunk1JoMMIaacfBcPZD/TyW15t4NiHZA\nxXs1kwDU68XC1gxuYfjSYXkBJZiSjiAujSAuMie/WRwAcdSr9yaOXe5Zdb/dwfbK\n8yOE05w0jIqsrahcHUdh50XDSh9aV2oG8OMEeYm4VMHAHObuHtnnyZBxTnKekxao\nr70k8sMAocUDxmDg4bs7525r1h/AG3A2CwJMPUC3AGJ01el0BQjCD4loDJoB1O2y\nQm9R9vtGMP8QRLVUzJmovpx//TpmUI3oFyIzLrvbQsBJK01DCQ==\n-----END CERTIFICATE-----`, + '5eec27c880f5296139990eaff6a3702ed0aaf8b4': + `-----BEGIN CERTIFICATE-----\n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\n8GWMHSU=\n-----END CERTIFICATE-----`, + '4e82856be6e6c8a68bdfb06c26e953c3ede4e278': + `-----BEGIN CERTIFICATE-----\nMIIE0zCCAwegAwIBAgIUPujegVakd5HZNxCH9xFVDRhdbEIwQQYJKoZIhvcNAQEK\nMDSgDzANBglghkgBZQMEAgIFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgIF\nAKIDAgEwMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjUwMTAyMTYwNzM4WhcN\nMjYwMTAyMTYwNzM4WjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0\nZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBojANBgkqhkiG\n9w0BAQEFAAOCAY8AMIIBigKCAYEA5p2ERn247eFA8Y6GdYJ6Uea8myVgAgokuueb\n95tDg7ONV1wAipp2gZgt0iw9J468bsOcrakscVtTjV07S3XcX7KS4VN5H6JUkeZF\n/4K2GeBHnCcNgc1O4GE7tmPJK3Iu1/LmwUux0WcJpDSIx7bdZdmiK+Bk85gNjAbn\nXGQWGB71lr5l4gVsGSzEblHSXamFEVYtD9cjMU6lxk6Y4reJdY9uJqXROg0tZqX+\ngrccSVEzNmJnEFZ67ZMNy/nE5FD9ELjIxvt18cp6ijlbtF3epStvntamXVDQ0MmJ\nC6uWzwIx0cl6AYEtWjLUnst3YBiXA0V8243bfsZ6ahBrrRJNQPRfnvxiyxvgf0dV\nlJhUBZXz8wGa8vkxZefd46i7Sn1lZAHuDDlL/quz4VgJRY/IHsr+9tT9N6aot7By\ni9151w1ewp7DvdiTCjJHSaRf+sFDzKg4a6Dir72WwfYaSHoEFGnJKnqY1dofnBpq\nMp0YfGur5FZIy9nTN+PdKNc8fHdTAgMBAAGjUzBRMB0GA1UdDgQWBBROgoVr5ubI\npovfsGwm6VPD7eTieDAfBgNVHSMEGDAWgBROgoVr5ubIpovfsGwm6VPD7eTieDAP\nBgNVHRMBAf8EBTADAQH/MEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAICBQCh\nHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAICBQCiAwIBMAOCAYEAx0DA7xps6u7N\n+fPvYnN6AL1zILOj47FbIa6lMdMu8zTJVSBR+FvGFzVy6ro8j1MGTUcreCP4Ugcn\n5KkJ4v5TjyAHCS7z4rQo1TRJsRUOIZYNwJt53MT+d+/bJ6k9wpjf1hBkrn/BXYaR\nZ4U98RVdUa0fjFyyWL7O4N0mHB9uTR5jW438q7Wp7KtXz12pIhXXshA+dqlqwYZ5\nC4r2+zcY7Sm+ioABz0cSpfkazPSYM56F7chHmtOFON8tzgU6ZT9cwnG8G9uaaSro\nkG/plFkHcIx0wqrTmDKQBNIYM6S4c1AY1ai387bMezELIHNzJ/QXsVoGa+5FKH5Y\n0dG22UdKSeuIIywJyRr8akKm3arn2Fg3wokiZIU0/fLBJ2Vazzr6K1xu57gt6qca\nIuTr/gM5a0vipz+zmp4B8UR6gvV7yf2i8rXTcdd+YRSI5i/S9JwUCtgq/SllQ+23\n10Eeoh5Q5W2H1wVlQiIqIwZL2eNl4B3K4m6bCnBytssw+kYODTbS\n-----END CERTIFICATE-----`, + 'dcf3c11129c46dda06823e4d6635819b798c2777': + `-----BEGIN CERTIFICATE-----\nMIIF0zCCA4egAwIBAgIUL9tG/IeWeO316bOqyy9vT4PuBw8wQQYJKoZIhvcNAQEK\nMDSgDzANBglghkgBZQMEAgIFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgIF\nAKIDAgEwMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjUwMTAyMTcxMzMyWhcN\nMjYwMTAyMTcxMzMyWjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0\nZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG\n9w0BAQEFAAOCAg8AMIICCgKCAgEAqezVYrNM7hXmfjBts8vGfcKjRNO3lCK5ukhV\nF+D69N7jp8GLPqZ/2I1h+G9+ipYCFslPp7R/FnxAsmcahOC32Z9+wKdABz7G43O9\n4/sQf+jD7ksh7YcdZQmIHsgNtePb24bDMs3ChK5VdNl3JztPAmFYtI7EofD+LQEz\njXMT4R2t85s6I9ROVI+V48LrpGUgSmNLMSo/79niawBLj2CNKvLTHdxG57YMKKF0\nFDRlitTNQ6PIo3Jua9RNUD1Zy+kdAy1F/3izPOQ2sgqy+vpifc2tUF2tdBYdIhBo\nosvXdNBpYk4t52GrUOUcuCgHw0dqLBgLZZ75Jpl4aHQO7Kl9xV/JyRWcWDumprVx\nuH76w0/A+Xu5KvPJTzcCEk7CDkf3TYJARbDo5bl0rkfGPBTDdFhjWh/H5YwyGyoM\n4TJfwrQ8Xh1wxqb5rflNwGZ03Ub8SYFflSA4dCf2roKOv/s42XSElx9eygmSlkeR\nwk9xD88TlyppnKlhlngmxCs/FzFOAIr3Qx6p7Lt3XxwXS6E3rDtAnCZ++SXGUEiX\ntd0aw+A2/958AlEQK0tMG6QjISWl7VtKKZmH2xxQLsD29tJr7g+oUsOnTMw17mSc\ns4n1RVrV/AT9vZ5YJYYlrSSzKcSsBC9fgx0OQSPDo5PoDmYey6HP5WaaU57He+pk\nQoOosdkCAwEAAaNTMFEwHQYDVR0OBBYEFNzzwREpxG3aBoI+TWY1gZt5jCd3MB8G\nA1UdIwQYMBaAFNzzwREpxG3aBoI+TWY1gZt5jCd3MA8GA1UdEwEB/wQFMAMBAf8w\nQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgIFAKEcMBoGCSqGSIb3DQEBCDAN\nBglghkgBZQMEAgIFAKIDAgEwA4ICAQCMu/NI7Ygv0J8rAHpfteyGu+wEmoq6sHdH\nOpKDO2slwFqmIMTl8RFkAhP3JPoTFLMb/OD/6gTGumNMUY6Tn6BiS30XKINij0rX\nR9qs8OIvRN7l8Rk8CesZDQUi0IpcKuHrweQGeKrbS3Z4Eq2Ycj2wQU+erKFtJqyO\nLnyR4rT9z6vhWk99H1zQ9fClqJVxkEVqP5ij7w63L0N9r5CRZHwxBwUVHd2CX1yk\nkiWvq0QIlHze1GThIeauMdCsU1DVjHyRx01cRs1j+vPwpbvTJcicWhF51lpC4jYc\n/SuCmvpuTotaPgehhqkjSuB4lVBhAgL7I5x0T+DwhT6yaF5n2q7xWX/mAg4Phuye\nQ6jIRzZUjsysNdI9LShQJuRTZfgATu6ctBfdImHh1OtlGOjyufIR658XdHsckZ2+\n2XWYzu11n6RwfCWCcADp+8BfsZuSSY4SKDVgvGiHvRDnH+3i1MRVx2tXoGebPLS+\nsfwc3en9UJceEbpL8tcg/MjR3nugWWKVP4IMkvC5mWVUctNJV7O1lM2FfFGZlDwH\ns6+hn8cmuHb4pACRyG79YKI3GdnGbeDQ2Vtye9ucpJDVGRNwcpU1PP4eVb5P09Qf\n9zahUcfvWw4HoGcqjWpbqO+5B3Y+twlKp4GVm1Xw6BS43VQ1kOzFGFOsFlVza5kQ\nCkcuqxf+kA==\n-----END CERTIFICATE-----` }; export const SKI_PEM = { f5a8f9b1e7a992a0865408db2a471c04a215f4d7: diff --git a/common/src/mock_certificates/sha256_rsapss_3072/mock_csca.pem b/common/src/mock_certificates/sha256_rsapss_3072/mock_csca.pem new file mode 100644 index 00000000..61357e12 --- /dev/null +++ b/common/src/mock_certificates/sha256_rsapss_3072/mock_csca.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE0zCCAwegAwIBAgIUKIOezq4f7OExZXY4WKgDkmH/v/IwQQYJKoZIhvcNAQEK +MDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEF +AKIDAgEgMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD +VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjUwMTEzMTMyMTI0WhcN +MjYwMTEzMTMyMTI0WjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0 +ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBojANBgkqhkiG +9w0BAQEFAAOCAY8AMIIBigKCAYEAptm+AZ9n4RhCJfsXcW8z6ikj5Bv5pjEhjbHO +c8VDVE+iG6MzQozk3ChjT5aGYAX14So86hBwQ/pCCfK36F4lGVLCatuEucdOoEGf +Vdy76P20arcq3FqDr379cFIsue4xl0WywPeG3azs+cmxnbm5MxDieo6Eh+8AdKiM +jvMuZrId2Wc4MNAKyngK1gdlsnw+NEcAl0mXp/T6epTg7LlxUiKiVh720sxiJrvG +joCfat80tzRt86HKozFELW46FRSlDHZHazZlahjBc1GDDEP5k1LSdRTl9kkP7i9d +j0IlO/8H0Hr3uS512N06vkv9Mg0XkhXuiAdwzCHzDXqX6T5mkFtHAFZAswqYho1M +JU5jQ13jUstUPa8d0n4g2MFOfSZUIC0wZhVoP2/4fVb2xWyE/RAUp7Sv7vUoE/jv +hkDAQJAgR4pM8Y/O7/Nxqpv/Z9+KdXIwbHpj5hwTPf2oOq0KBPy/LdKaEsm/ideS +VpUZfvIFw7kmkKfGu1h3Hex/qrq/AgMBAAGjUzBRMB0GA1UdDgQWBBT1XsE3h3F8 +7aKSCKDyAvfJUcxo/DAfBgNVHSMEGDAWgBT1XsE3h3F87aKSCKDyAvfJUcxo/DAP +BgNVHRMBAf8EBTADAQH/MEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIBBQCh +HDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIAOCAYEAISUMYdiDzsHU +bJmlPu/eyEdCPJeNeF7QNPmO2ILNECI378JspflPDfbOliYyQ92Y1zdc34OFbLs0 +D3i+V9PllcctWoY6s34ePgEHpdBcvMwvxZZ7+3Ec+GSlNJQyQI8xXgGCc9B+8zE8 +BbP17vKDn2X7ANeVFaWmpRoT+SgRipK1bPzat3Kmb/QEmoqw5us6hB4Vn9c8dWvG +a9Eg/Nz3yUftuUWzSSaHdSfXMyVYrCHco04g3tmwGS+dU9hQM7b+xGlJiXVtXHcV +1bItJYBkXnH9V1kRX9otL/qzXer9FFrHNqJlp7VWsakr5BDBxRjj/DiaTetioeTf +HTxSFTlEGGRSVMfQQ8l6m9F7YHNovPkbXcimANvniwH4msOKVhpP7kVuHGmeLhSf +YvPI4BCa9qT1L4kMH6ViflSQii19ZaV7ihpThoDvP12Bfq9h+AkVSXWgeWYR8OcY +UpkVJT9YOoRsCXxyjMf5qps4XCQ6DJpzX02jCVWdIGAwlhu4bL6c +-----END CERTIFICATE----- \ No newline at end of file diff --git a/common/src/mock_certificates/sha256_rsapss_3_3072/mock_csca.pem b/common/src/mock_certificates/sha256_rsapss_3_3072/mock_csca.pem new file mode 100644 index 00000000..765d05d9 --- /dev/null +++ b/common/src/mock_certificates/sha256_rsapss_3_3072/mock_csca.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE0TCCAwWgAwIBAgIUBLEeu0TdpxCEm0oXnFc5/J2KnVgwQQYJKoZIhvcNAQEK +MDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEF +AKIDAgEgMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD +VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjUwMTAyMTMzNzIzWhcN +MjYwMTAyMTMzNzIzWjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0 +ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBoDANBgkqhkiG +9w0BAQEFAAOCAY0AMIIBiAKCAYEAx1d3aB3xFdMEpS6uW7I1BGTC3TlDVCgfr9KS +8mehxZ3bjmtxEutAGkUoA2a2r9hqTgFOIganlYm2T4ss7q0lIpk1u/tsypsR1Htq +8vynrWGHXxFZfStmu/YvhDqmkkYRkvBbZqDg7Kp58l3wGKoyssbpifRPcQ3KzYlD +2AWRQpHOub/7oqC8eE7Ly+1vhJe2cVgbhiFb9aaSu6UfTjyz4dq9dP9CHymPntiW +WM8EpgjtdnccjWkKwwqkLn65m0FvqJ2aachUGe2gI2biD5VUfuI9qDrvPw1Cj8+8 +Tyj+NoijVKJ0ywAXyREuZNelJPJ0FTfXKBIeRIc8aJHT7jCNzgYx/9ADJZ5odZoD +MFvfdMnY325xLJj1rLyjgBGRYf9IhU8smGQ9MAtT4S93Cv6uytjFy2o6SJ6K49/W +VxFZsFqDmMGnx/TBnWJUj0VdEmdaT9jtCIaNcc1b0KUrq4FNaXEXJzubZu1IdfGe +aDPnX4B6V8YmcIIKfkEJDXg7y8MnAgEDo1MwUTAdBgNVHQ4EFgQUBDfjEjJI+bF+ +B22o+4iDRZYKiiIwHwYDVR0jBBgwFoAUBDfjEjJI+bF+B22o+4iDRZYKiiIwDwYD +VR0TAQH/BAUwAwEB/zBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRww +GgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASADggGBACh2xUYNWW/cSGZN +IMcQUsEVO6tcM7nOtCnI2n4xruz8iaNdMQnaptbckxtmF5+K31Ac6GBSYHD9qhcA +carVRVcl0aoORREjT+PDweC3/TSyrXfh9yAXIhYmYyFhfBZEAso3IEkFe2LLmtzg +y8R65VJ/NF0tg8SjvEsnEkNl3CJ78tl6bUhkZKsYTlY/r8L0573ag+UuoyXIF0Z9 +ge7qf1TG0Ktah7MeDT2oBhzGVw2sxLIdsunk1JoMMIaacfBcPZD/TyW15t4NiHZA +xXs1kwDU68XC1gxuYfjSYXkBJZiSjiAujSAuMie/WRwAcdSr9yaOXe5Zdb/dwfbK +8yOE05w0jIqsrahcHUdh50XDSh9aV2oG8OMEeYm4VMHAHObuHtnnyZBxTnKekxao +r70k8sMAocUDxmDg4bs7525r1h/AG3A2CwJMPUC3AGJ01el0BQjCD4loDJoB1O2y +Qm9R9vtGMP8QRLVUzJmovpx//TpmUI3oFyIzLrvbQsBJK01DCQ== +-----END CERTIFICATE----- \ No newline at end of file diff --git a/common/src/mock_certificates/sha256_rsapss_3_4096/mock_csca.pem b/common/src/mock_certificates/sha256_rsapss_3_4096/mock_csca.pem new file mode 100644 index 00000000..1bc71677 --- /dev/null +++ b/common/src/mock_certificates/sha256_rsapss_3_4096/mock_csca.pem @@ -0,0 +1,34 @@ +-----BEGIN CERTIFICATE----- +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 +8GWMHSU= +-----END CERTIFICATE----- \ No newline at end of file diff --git a/common/src/mock_certificates/sha256_rsapss_4096/mock_csca.crt b/common/src/mock_certificates/sha256_rsapss_4096/mock_csca.crt new file mode 100644 index 00000000..5d6b3b86 --- /dev/null +++ b/common/src/mock_certificates/sha256_rsapss_4096/mock_csca.crt @@ -0,0 +1,34 @@ +-----BEGIN CERTIFICATE----- +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 +aD1jrCikxQ== +-----END CERTIFICATE----- diff --git a/common/src/mock_certificates/sha256_rsapss_4096/mock_dsc.crt b/common/src/mock_certificates/sha256_rsapss_4096/mock_dsc.crt new file mode 100644 index 00000000..e5d41cf1 --- /dev/null +++ b/common/src/mock_certificates/sha256_rsapss_4096/mock_dsc.crt @@ -0,0 +1,33 @@ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- diff --git a/common/src/mock_certificates/sha384_rsapss_3072/mock_csca.pem b/common/src/mock_certificates/sha384_rsapss_3072/mock_csca.pem new file mode 100644 index 00000000..de9a72c6 --- /dev/null +++ b/common/src/mock_certificates/sha384_rsapss_3072/mock_csca.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE0zCCAwegAwIBAgIUPujegVakd5HZNxCH9xFVDRhdbEIwQQYJKoZIhvcNAQEK +MDSgDzANBglghkgBZQMEAgIFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgIF +AKIDAgEwMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD +VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjUwMTAyMTYwNzM4WhcN +MjYwMTAyMTYwNzM4WjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0 +ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBojANBgkqhkiG +9w0BAQEFAAOCAY8AMIIBigKCAYEA5p2ERn247eFA8Y6GdYJ6Uea8myVgAgokuueb +95tDg7ONV1wAipp2gZgt0iw9J468bsOcrakscVtTjV07S3XcX7KS4VN5H6JUkeZF +/4K2GeBHnCcNgc1O4GE7tmPJK3Iu1/LmwUux0WcJpDSIx7bdZdmiK+Bk85gNjAbn +XGQWGB71lr5l4gVsGSzEblHSXamFEVYtD9cjMU6lxk6Y4reJdY9uJqXROg0tZqX+ +grccSVEzNmJnEFZ67ZMNy/nE5FD9ELjIxvt18cp6ijlbtF3epStvntamXVDQ0MmJ +C6uWzwIx0cl6AYEtWjLUnst3YBiXA0V8243bfsZ6ahBrrRJNQPRfnvxiyxvgf0dV +lJhUBZXz8wGa8vkxZefd46i7Sn1lZAHuDDlL/quz4VgJRY/IHsr+9tT9N6aot7By +i9151w1ewp7DvdiTCjJHSaRf+sFDzKg4a6Dir72WwfYaSHoEFGnJKnqY1dofnBpq +Mp0YfGur5FZIy9nTN+PdKNc8fHdTAgMBAAGjUzBRMB0GA1UdDgQWBBROgoVr5ubI +povfsGwm6VPD7eTieDAfBgNVHSMEGDAWgBROgoVr5ubIpovfsGwm6VPD7eTieDAP +BgNVHRMBAf8EBTADAQH/MEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAICBQCh +HDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAICBQCiAwIBMAOCAYEAx0DA7xps6u7N ++fPvYnN6AL1zILOj47FbIa6lMdMu8zTJVSBR+FvGFzVy6ro8j1MGTUcreCP4Ugcn +5KkJ4v5TjyAHCS7z4rQo1TRJsRUOIZYNwJt53MT+d+/bJ6k9wpjf1hBkrn/BXYaR +Z4U98RVdUa0fjFyyWL7O4N0mHB9uTR5jW438q7Wp7KtXz12pIhXXshA+dqlqwYZ5 +C4r2+zcY7Sm+ioABz0cSpfkazPSYM56F7chHmtOFON8tzgU6ZT9cwnG8G9uaaSro +kG/plFkHcIx0wqrTmDKQBNIYM6S4c1AY1ai387bMezELIHNzJ/QXsVoGa+5FKH5Y +0dG22UdKSeuIIywJyRr8akKm3arn2Fg3wokiZIU0/fLBJ2Vazzr6K1xu57gt6qca +IuTr/gM5a0vipz+zmp4B8UR6gvV7yf2i8rXTcdd+YRSI5i/S9JwUCtgq/SllQ+23 +10Eeoh5Q5W2H1wVlQiIqIwZL2eNl4B3K4m6bCnBytssw+kYODTbS +-----END CERTIFICATE----- \ No newline at end of file diff --git a/common/src/mock_certificates/sha384_rsapsss_4096/mock_csca.pem b/common/src/mock_certificates/sha384_rsapsss_4096/mock_csca.pem new file mode 100644 index 00000000..a105449c --- /dev/null +++ b/common/src/mock_certificates/sha384_rsapsss_4096/mock_csca.pem @@ -0,0 +1,34 @@ +-----BEGIN CERTIFICATE----- +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 +Ckcuqxf+kA== +-----END CERTIFICATE----- \ No newline at end of file diff --git a/common/src/utils/certificate_parsing/parseCertificateSimple.ts b/common/src/utils/certificate_parsing/parseCertificateSimple.ts index 044c458d..4b5326a2 100644 --- a/common/src/utils/certificate_parsing/parseCertificateSimple.ts +++ b/common/src/utils/certificate_parsing/parseCertificateSimple.ts @@ -50,13 +50,13 @@ export function parseCertificateSimple(pem: string): CertificateData { const signatureAlgoFN = getFriendlyName(signatureAlgoOID); certificateData.hashAlgorithm = getHashAlgorithm(signatureAlgoFN); let params; - if (publicKeyAlgoFN === 'RSA') { + if (publicKeyAlgoFN === 'RSA' && signatureAlgoFN != 'RSASSA_PSS') { certificateData.signatureAlgorithm = 'rsa'; params = getParamsRSA(cert); } else if (publicKeyAlgoFN === 'ECC') { certificateData.signatureAlgorithm = 'ecdsa'; params = getParamsECDSA(cert); - } else if (publicKeyAlgoFN === 'RSASSA_PSS') { + } else if (publicKeyAlgoFN === 'RSASSA_PSS' || signatureAlgoFN === 'RSASSA_PSS') { certificateData.signatureAlgorithm = 'rsapss'; params = getParamsRSAPSS(cert); } else { @@ -77,7 +77,7 @@ export function parseCertificateSimple(pem: string): CertificateData { certificateData.authorityKeyIdentifier = authorityKeyIdentifier; // corner case for rsapss - if (certificateData.signatureAlgorithm === 'rsapss' && !certificateData.hashAlgorithm) { + if (certificateData.signatureAlgorithm === 'rsapss' && (!certificateData.hashAlgorithm || certificateData.hashAlgorithm === 'unknown')) { certificateData.hashAlgorithm = ( certificateData.publicKeyDetails as PublicKeyDetailsRSAPSS ).hashAlgorithm; diff --git a/registry/src/csca/build_csca_merkle_tree.ts b/registry/src/csca/build_csca_merkle_tree.ts index 0a305b7b..e151375f 100644 --- a/registry/src/csca/build_csca_merkle_tree.ts +++ b/registry/src/csca/build_csca_merkle_tree.ts @@ -69,6 +69,12 @@ async function buildCscaMerkleTree() { '../common/src/mock_certificates/sha256_rsa_3_4096/mock_csca.crt', '../common/src/mock_certificates/sha384_rsa_65537_4096/mock_csca.pem', '../common/src/mock_certificates/sha512_rsa_65537_4096/mock_csca.pem', + '../common/src/mock_certificates/sha256_rsapss_2048/mock_csca.pem', + '../common/src/mock_certificates/sha256_rsapss_3072/mock_csca.pem', + '../common/src/mock_certificates/sha256_rsapss_3_3072/mock_csca.pem', + '../common/src/mock_certificates/sha256_rsapss_3_4096/mock_csca.pem', + '../common/src/mock_certificates/sha384_rsapss_3072/mock_csca.pem', + '../common/src/mock_certificates/sha384_rsapsss_4096/mock_csca.pem', ]; for (const mockCscaFile of mockCscaList) { From ee2a6a7a7bfeb6a2e778d491622eb70d3f4e9f0b Mon Sep 17 00:00:00 2001 From: seshanthS Date: Tue, 21 Jan 2025 17:49:07 +0530 Subject: [PATCH 3/6] rename circuits && add test files --- ...256_sha256_sha256_rsapss_3_32_4096.circom} | 0 circuits/package.json | 2 +- circuits/tests/dsc/dsc.test.ts | 259 ++++++++++++++++++ circuits/tests/dsc/test_cases.ts | 36 +++ 4 files changed, 296 insertions(+), 1 deletion(-) rename circuits/circuits/register/instances/{register_sha256_sha256_sha256_rsapss_3_4096.circom => register_sha256_sha256_sha256_rsapss_3_32_4096.circom} (100%) create mode 100644 circuits/tests/dsc/dsc.test.ts create mode 100644 circuits/tests/dsc/test_cases.ts diff --git a/circuits/circuits/register/instances/register_sha256_sha256_sha256_rsapss_3_4096.circom b/circuits/circuits/register/instances/register_sha256_sha256_sha256_rsapss_3_32_4096.circom similarity index 100% rename from circuits/circuits/register/instances/register_sha256_sha256_sha256_rsapss_3_4096.circom rename to circuits/circuits/register/instances/register_sha256_sha256_sha256_rsapss_3_32_4096.circom diff --git a/circuits/package.json b/circuits/package.json index fcf368c4..b7ddf512 100644 --- a/circuits/package.json +++ b/circuits/package.json @@ -5,7 +5,7 @@ "license": "MIT", "scripts": { "test": "yarn ts-mocha --max-old-space-size=8192 'tests/**/*.test.ts' 'tests/*.test.ts' --exit", - "test-dsc": "yarn ts-mocha --max-old-space-size=8192 'tests/dsc.test.ts' --exit", + "test-dsc": "yarn ts-mocha --max-old-space-size=8192 'tests/dsc/dsc.test.ts' --exit", "test-prove": "yarn ts-mocha --max-old-space-size=40960 'tests/prove.test.ts' --exit", "test-rsa": "yarn ts-mocha --max-old-space-size=8192 'tests/utils/rsaPkcs1v1_5.test.ts' --exit", "test-rsa-pss": "yarn ts-mocha --max-old-space-size=8192 'tests/utils/rsapss.test.ts' --exit", diff --git a/circuits/tests/dsc/dsc.test.ts b/circuits/tests/dsc/dsc.test.ts new file mode 100644 index 00000000..1ea78890 --- /dev/null +++ b/circuits/tests/dsc/dsc.test.ts @@ -0,0 +1,259 @@ +import { assert, expect } from 'chai'; +import path from 'path'; +import { wasm as wasm_tester } from 'circom_tester'; +import { generateCircuitInputsDSC } from '../../../common/src/utils/csca'; +import { + mock_dsc_sha1_rsa_4096, + mock_dsc_sha256_rsa_4096, + mock_dsc_sha256_rsapss_4096, + mock_csca_sha1_rsa_4096, + mock_csca_sha256_rsa_4096, + mock_csca_sha256_rsapss_4096, + mock_dsc_sha384_brainpoolP256r1, + mock_dsc_sha256_brainpoolP256r1, + mock_csca_brainpoolP256r1, + mock_csca_sha256_brainpoolP256r1, + mock_dsc_sha256_brainpoolP256r1_256, + mock_csca_sha256_brainpoolP256r1_256, + mock_dsc_sha256_brainpoolP224r1, + mock_csca_sha256_brainpoolP224r1_224, + mock_dsc_sha256_brainpoolP224r1_224, + mock_dsc_sha1_ecdsa, + mock_dsc_sha1_ecdsa_256, + mock_csca_sha1_ecdsa_256, + mock_csca_sha1_secp256r1_256, + mock_dsc_sha256_secp256r1, + mock_csca_sha256_secp256r1, + mock_dsc_sha1_secp256r1_256, + mock_dsc_sha256_secp384r1_384, + mock_csca_sha256_secp384r1_384, + mock_dsc_sha384_brainpoolP256r1_256, + mock_csca_sha384_brainpoolP256r1_256, + mock_dsc_sha384_brainpoolP384r1, + mock_dsc_sha384_brainpoolP384r1_384, + mock_csca_sha384_brainpoolP384r1_384, + mock_dsc_sha384_secp348r1_348, + mock_csca_sha384_secp348r1_348, + mock_dsc_sha512_brainpoolP256r1_256, + mock_csca_sha512_brainpoolP256r1_256, + mock_dsc_sha512_brainpoolP384r1_384, + mock_csca_sha512_brainpoolP384r1_384, + mock_dsc_sha1_secp384r1_384, + mock_csca_sha1_secp384r1_384, + mock_dsc_sha1_brainpoolP256r1_256, + mock_csca_sha1_brainpoolP256r1_256, + mock_dsc_sha256_rsapss_2048, + mock_csca_sha256_rsapss_2048, + mock_dsc_sha256_rsapss_3_3072, + mock_dsc_sha256_rsapss_65537_3072, + mock_csca_sha256_rsapss_65537_3072, + mock_dsc_sha256_rsapss_3072, + mock_csca_sha256_rsapss_3072, + mock_csca_sha256_rsapss_3_3072, + mock_dsc_sha256_rsapss_3_4096, + mock_csca_sha256_rsapss_3_4096, + mock_dsc_sha384_rsapss_65537_3072, + mock_csca_sha384_rsapss_65537_3072, + mock_dsc_sha384_rsapss_65537_4096, + mock_csca_sha384_rsapss_65537_4096, + mock_dsc_sha1_rsa_2048, + mock_csca_sha1_rsa_2048, + mock_dsc_sha1_rsa_3072, + mock_csca_sha1_rsa_3072, + mock_dsc_sha1_rsa_3_4096, + mock_csca_sha1_rsa_3_4096, + mock_csca_sha1_rsa_3_2048, + mock_dsc_sha1_rsa_3_2048, + mock_dsc_sha1_rsa_3_3072, + mock_csca_sha1_rsa_3_3072, + mock_dsc_sha256_rsa_2048, + mock_csca_sha256_rsa_2048, + mock_dsc_sha256_rsa_65537_3072, + mock_csca_sha256_rsa_65537_3072, + mock_dsc_sha384_rsa_65537_4096, + mock_csca_sha384_rsa_65537_4096, + mock_dsc_sha512_rsa_65537_4096, + mock_csca_sha512_rsa_65537_4096, + mock_dsc_sha256_rsa_3_4096, + mock_csca_sha256_rsa_3_4096, +} from '../../../common/src/constants/mockCertificates'; +import { max_cert_bytes } from '../../../common/src/constants/constants'; +import { getCircuitName } from '../../../common/src/utils/certificate_parsing/parseCertificateSimple'; +import { fullSigAlgs, sigAlgs } from './test_cases'; + +const testSuite = process.env.FULL_TEST_SUITE === 'true' ? fullSigAlgs : sigAlgs; + +testSuite.forEach(({ sigAlg, hashFunction, domainParameter, keyLength }) => { + describe(`DSC chain certificate - ${hashFunction.toUpperCase()} ${sigAlg.toUpperCase()} ${domainParameter.toUpperCase()} ${keyLength}`, function () { + this.timeout(0); // Disable timeout + let circuit; + + // Mock certificates based on signature algorithm and hash function + let dscCertPem; + let cscaCertPem; + const salt = '0'; + + switch (`${sigAlg}_${hashFunction}_${domainParameter}_${keyLength}`) { + case 'rsa_sha256_65537_4096': + dscCertPem = mock_dsc_sha256_rsa_4096; + cscaCertPem = mock_csca_sha256_rsa_4096; + break; + case 'rsa_sha256_65537_2048': + dscCertPem = mock_dsc_sha256_rsa_2048; + cscaCertPem = mock_csca_sha256_rsa_2048; + break; + case 'rsa_sha256_65537_3072': + dscCertPem = mock_dsc_sha256_rsa_65537_3072; + cscaCertPem = mock_csca_sha256_rsa_65537_3072; + break; + case 'rsa_sha256_3_4096': + dscCertPem = mock_dsc_sha256_rsa_3_4096; + cscaCertPem = mock_csca_sha256_rsa_3_4096; + break; + case 'rsa_sha1_65537_2048': + dscCertPem = mock_dsc_sha1_rsa_2048; + cscaCertPem = mock_csca_sha1_rsa_2048; + break; + case 'rsa_sha1_65537_3072': + dscCertPem = mock_dsc_sha1_rsa_3072; + cscaCertPem = mock_csca_sha1_rsa_3072; + break; + case 'rsa_sha1_65537_4096': + dscCertPem = mock_dsc_sha1_rsa_4096; + cscaCertPem = mock_csca_sha1_rsa_4096; + break; + case 'rsa_sha1_3_2048': + dscCertPem = mock_dsc_sha1_rsa_3_2048; + cscaCertPem = mock_csca_sha1_rsa_3_2048; + break; + case 'rsa_sha1_3_3072': + dscCertPem = mock_dsc_sha1_rsa_3_3072; + cscaCertPem = mock_csca_sha1_rsa_3_3072; + break; + case 'rsa_sha1_3_4096': + dscCertPem = mock_dsc_sha1_rsa_3_4096; + cscaCertPem = mock_csca_sha1_rsa_3_4096; + break; + case 'rsa_sha384_65537_4096': + dscCertPem = mock_dsc_sha384_rsa_65537_4096; + cscaCertPem = mock_csca_sha384_rsa_65537_4096; + break; + case 'rsa_sha512_65537_4096': + dscCertPem = mock_dsc_sha512_rsa_65537_4096; + cscaCertPem = mock_csca_sha512_rsa_65537_4096; + break; + case 'rsapss_sha256_65537_2048': + dscCertPem = mock_dsc_sha256_rsapss_2048; + cscaCertPem = mock_csca_sha256_rsapss_2048; + break; + case 'rsapss_sha256_65537_3072': + dscCertPem = mock_dsc_sha256_rsapss_65537_3072; + cscaCertPem = mock_csca_sha256_rsapss_65537_3072; + break; + case 'rsapss_sha256_65537_4096': + dscCertPem = mock_dsc_sha256_rsapss_4096; + cscaCertPem = mock_csca_sha256_rsapss_4096; + break; + case 'rsapss_sha256_3_3072': + dscCertPem = mock_dsc_sha256_rsapss_3_3072; + cscaCertPem = mock_csca_sha256_rsapss_3_3072; + break; + case 'rsapss_sha256_3_4096': + dscCertPem = mock_dsc_sha256_rsapss_3_4096; + cscaCertPem = mock_csca_sha256_rsapss_3_4096; + break; + case 'rsapss_sha384_65537_3072': + dscCertPem = mock_dsc_sha384_rsapss_65537_3072; + cscaCertPem = mock_csca_sha384_rsapss_65537_3072; + break; + case 'rsapss_sha384_65537_4096': + dscCertPem = mock_dsc_sha384_rsapss_65537_4096; + cscaCertPem = mock_csca_sha384_rsapss_65537_4096; + break; + case 'ecdsa_sha1_secp256r1_256': + dscCertPem = mock_csca_sha1_secp256r1_256; //mock_dsc_sha1_secp256r1_256; + cscaCertPem = mock_csca_sha1_secp256r1_256; + break; + case 'ecdsa_sha1_secp384r1_384': + dscCertPem = mock_dsc_sha1_secp384r1_384; + cscaCertPem = mock_csca_sha1_secp384r1_384; + break; + case 'ecdsa_sha1_brainpoolP256r1_256': + dscCertPem = mock_dsc_sha1_brainpoolP256r1_256; + cscaCertPem = mock_csca_sha1_brainpoolP256r1_256; + break; + case 'ecdsa_sha256_secp256r1_256': + dscCertPem = mock_dsc_sha256_secp256r1; + cscaCertPem = mock_csca_sha256_secp256r1; + break; + case 'ecdsa_sha256_secp384r1_384': + dscCertPem = mock_dsc_sha256_secp384r1_384; + cscaCertPem = mock_csca_sha256_secp384r1_384; + break; + case 'ecdsa_sha256_brainpoolP256r1_256': + dscCertPem = mock_dsc_sha256_brainpoolP256r1_256; + cscaCertPem = mock_csca_sha256_brainpoolP256r1_256; + break; + case 'ecdsa_sha256_brainpoolP224r1_224': + dscCertPem = mock_dsc_sha256_brainpoolP224r1_224; + cscaCertPem = mock_csca_sha256_brainpoolP224r1_224; + break; + case 'ecdsa_sha384_brainpoolP256r1_256': + dscCertPem = mock_dsc_sha384_brainpoolP256r1_256; + cscaCertPem = mock_csca_sha384_brainpoolP256r1_256; + break; + case 'ecdsa_sha384_brainpoolP384r1_384': + dscCertPem = mock_dsc_sha384_brainpoolP384r1_384; + cscaCertPem = mock_csca_sha384_brainpoolP384r1_384; + break; + case 'ecdsa_sha384_secp384r1_384': + dscCertPem = mock_dsc_sha384_secp348r1_348; + cscaCertPem = mock_csca_sha384_secp348r1_348; + break; + case 'ecdsa_sha512_brainpoolP256r1_256': + dscCertPem = mock_dsc_sha512_brainpoolP256r1_256; + cscaCertPem = mock_csca_sha512_brainpoolP256r1_256; + break; + case 'ecdsa_sha512_brainpoolP384r1_384': + dscCertPem = mock_dsc_sha512_brainpoolP384r1_384; + cscaCertPem = mock_csca_sha512_brainpoolP384r1_384; + break; + default: + throw new Error('Unsupported signature algorithm and hash function combination'); + } + + const inputs = generateCircuitInputsDSC( + BigInt(salt).toString(), + dscCertPem, + max_cert_bytes, + true + ); + + before(async () => { + circuit = await wasm_tester( + path.join( + __dirname, + `../../circuits/dsc/instances/${getCircuitName('dsc', sigAlg, hashFunction, domainParameter, keyLength)}.circom` + ), + { + include: [ + 'node_modules', + './node_modules/@zk-kit/binary-merkle-root.circom/src', + './node_modules/circomlib/circuits', + ], + } + ); + }); + + it('should compute the correct output', async () => { + const witness = await circuit.calculateWitness(inputs.inputs, true); + console.log('\x1b[34m%s\x1b[0m', 'witness generated ', sigAlg); + // const blinded_dsc_commitment = (await circuit.getOutput(witness, ['blinded_dsc_commitment'])) + // .blinded_dsc_commitment; + // console.log('\x1b[34m%s\x1b[0m', 'blinded_dsc_commitment: ', blinded_dsc_commitment); + // const merkle_root = (await circuit.getOutput(witness, ['merkle_root'])).merkle_root; + // console.log('\x1b[34m%s\x1b[0m', 'merkle_root: ', merkle_root); + // expect(blinded_dsc_commitment).to.be.not.null; + }); + }); +}); \ No newline at end of file diff --git a/circuits/tests/dsc/test_cases.ts b/circuits/tests/dsc/test_cases.ts new file mode 100644 index 00000000..83ef92ef --- /dev/null +++ b/circuits/tests/dsc/test_cases.ts @@ -0,0 +1,36 @@ +export const sigAlgs = [ + { sigAlg: 'rsa', hashFunction: 'sha1', domainParameter: '3', keyLength: '4096' }, + // { sigAlg: 'rsa', hashFunction: 'sha384', domainParameter: '65537', keyLength: '4096' }, + // { sigAlg: 'rsapss', hashFunction: 'sha256', domainParameter: '65537', keyLength: '3072' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha1', domainParameter: 'secp256r1', keyLength: '256' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha512', domainParameter: 'brainpoolP384r1', keyLength: '384' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha384', domainParameter: 'brainpoolP256r1', keyLength: '256' }, +]; + +export const fullSigAlgs = [ + { sigAlg: 'rsa', hashFunction: 'sha1', domainParameter: '65537', keyLength: '4096' }, + { sigAlg: 'rsa', hashFunction: 'sha1', domainParameter: '3', keyLength: '4096' }, + { sigAlg: 'rsa', hashFunction: 'sha256', domainParameter: '65537', keyLength: '4096' }, + { sigAlg: 'rsa', hashFunction: 'sha384', domainParameter: '65537', keyLength: '4096' }, + { sigAlg: 'rsa', hashFunction: 'sha512', domainParameter: '65537', keyLength: '4096' }, + { sigAlg: 'rsa', hashFunction: 'sha256', domainParameter: '3', keyLength: '4096' }, + // { sigAlg: 'rsapss', hashFunction: 'sha256', domainParameter: '65537', keyLength: '4096' }, + // { sigAlg: 'rsapss', hashFunction: 'sha256', domainParameter: '65537', keyLength: '2048' }, + // { sigAlg: 'rsapss', hashFunction: 'sha256', domainParameter: '65537', keyLength: '3072' }, + // { sigAlg: 'rsapss', hashFunction: 'sha256', domainParameter: '3', keyLength: '3072' }, + // { sigAlg: 'rsapss', hashFunction: 'sha256', domainParameter: '3', keyLength: '4096' }, + // { sigAlg: 'rsapss', hashFunction: 'sha384', domainParameter: '65537', keyLength: '3072' }, + // { sigAlg: 'rsapss', hashFunction: 'sha384', domainParameter: '65537', keyLength: '4096' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha1', domainParameter: 'secp256r1', keyLength: '256' }, + // // { sigAlg: 'ecdsa', hashFunction: 'sha1', domainParameter: 'secp384r1', keyLength: '384' }, //killed + // { sigAlg: 'ecdsa', hashFunction: 'sha1', domainParameter: 'brainpoolP256r1', keyLength: '256' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha256', domainParameter: 'brainpoolP256r1', keyLength: '256' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha256', domainParameter: 'secp256r1', keyLength: '256' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha256', domainParameter: 'secp384r1', keyLength: '384' }, + + // { sigAlg: 'ecdsa', hashFunction: 'sha384', domainParameter: 'brainpoolP256r1', keyLength: '256' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha384', domainParameter: 'brainpoolP384r1', keyLength: '384' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha384', domainParameter: 'secp384r1', keyLength: '384' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha512', domainParameter: 'brainpoolP256r1', keyLength: '256' }, + // { sigAlg: 'ecdsa', hashFunction: 'sha512', domainParameter: 'brainpoolP384r1', keyLength: '384' }, +]; \ No newline at end of file From e5ea14fee229130c0588f03ee2978ab108dfd68b Mon Sep 17 00:00:00 2001 From: seshanthS Date: Wed, 22 Jan 2025 01:01:48 +0530 Subject: [PATCH 4/6] format --- circuits/tests/dsc/dsc.test.ts | 2 +- circuits/tests/dsc/test_cases.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/circuits/tests/dsc/dsc.test.ts b/circuits/tests/dsc/dsc.test.ts index 1ea78890..4e489bdd 100644 --- a/circuits/tests/dsc/dsc.test.ts +++ b/circuits/tests/dsc/dsc.test.ts @@ -256,4 +256,4 @@ testSuite.forEach(({ sigAlg, hashFunction, domainParameter, keyLength }) => { // expect(blinded_dsc_commitment).to.be.not.null; }); }); -}); \ No newline at end of file +}); diff --git a/circuits/tests/dsc/test_cases.ts b/circuits/tests/dsc/test_cases.ts index 83ef92ef..767cb2fc 100644 --- a/circuits/tests/dsc/test_cases.ts +++ b/circuits/tests/dsc/test_cases.ts @@ -33,4 +33,4 @@ export const fullSigAlgs = [ // { sigAlg: 'ecdsa', hashFunction: 'sha384', domainParameter: 'secp384r1', keyLength: '384' }, // { sigAlg: 'ecdsa', hashFunction: 'sha512', domainParameter: 'brainpoolP256r1', keyLength: '256' }, // { sigAlg: 'ecdsa', hashFunction: 'sha512', domainParameter: 'brainpoolP384r1', keyLength: '384' }, -]; \ No newline at end of file +]; From 4239143c937bd22e9643b3cb3e1e774607e8655d Mon Sep 17 00:00:00 2001 From: seshanthS Date: Wed, 22 Jan 2025 11:21:05 +0530 Subject: [PATCH 5/6] update import --- circuits/circuits/dsc/dsc.circom | 1 + 1 file changed, 1 insertion(+) diff --git a/circuits/circuits/dsc/dsc.circom b/circuits/circuits/dsc/dsc.circom index 9142f0a0..837f999e 100644 --- a/circuits/circuits/dsc/dsc.circom +++ b/circuits/circuits/dsc/dsc.circom @@ -11,6 +11,7 @@ include "../utils/passport/signatureAlgorithm.circom"; include "../utils/passport/signatureVerifier.circom"; include "@openpassport/zk-email-circuits/utils/bytes.circom"; include "../utils/crypto/bitify/bytes.circom"; +include "../utils/crypto/utils/WordToBytes.circom"; template DSC(signatureAlgorithm, n_dsc, k_dsc, n_csca, k_csca, max_cert_bytes, maxPubkeyBytesLength, nLevels) { From 3822288495229132dbacd7001080e0351906c31a Mon Sep 17 00:00:00 2001 From: seshanthS Date: Wed, 22 Jan 2025 15:43:38 +0530 Subject: [PATCH 6/6] fix bits --- circuits/tests/register/test_cases.ts | 2 +- common/src/utils/circuitsName.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/circuits/tests/register/test_cases.ts b/circuits/tests/register/test_cases.ts index 6c25cf92..57689381 100644 --- a/circuits/tests/register/test_cases.ts +++ b/circuits/tests/register/test_cases.ts @@ -5,7 +5,7 @@ export const sigAlgs = [ sigAlg: 'rsapss', hashFunction: 'sha256', domainParameter: '3', - keyLength: '3072', + keyLength: '4096', checkNullifier: true, }, { diff --git a/common/src/utils/circuitsName.ts b/common/src/utils/circuitsName.ts index a876f4e6..3d65107c 100644 --- a/common/src/utils/circuitsName.ts +++ b/common/src/utils/circuitsName.ts @@ -31,7 +31,7 @@ export function getCircuitNameFromPassportData(passportData: PassportData) { const saltLength = (parsedDsc.publicKeyDetails as PublicKeyDetailsRSAPSS).saltLength; const bits = (parsedDsc.publicKeyDetails as PublicKeyDetailsRSAPSS).bits; if (parseInt(bits) <= 4096) { - return `register_${dgHashAlgo}_${eContentHashAlgo}_${signedAttrHashAlgo}_${sigAlg}_${exponent}_${saltLength}_${4096}`; + return `register_${dgHashAlgo}_${eContentHashAlgo}_${signedAttrHashAlgo}_${sigAlg}_${exponent}_${saltLength}_${bits}`; } else { throw new Error(`Unsupported key length: ${bits}`); }