Пример #1
0
    def testCertPemBytes(self):
        provider = CryptoProvider()
        # provider.generate_cert_key_pair()
        provider.get_client_cert()
        certBytes = provider.get_pem_encoded_client_cert()
        assertedCertHex = "2D2D2D2D2D424547494E2043455254494649434154452D2D2D2D2D0A4D4949432F7A43434165656741774942416749424154414E42676B71686B694739773042415155464144416A4D53457748775944565151444442684F566B6C450A53554567523246745A564E30636D56686253424462476C6C626E51774868634E4D5459774E4449794D5451314E5445355768634E4D5463774E4449794D5451310A4E544535576A416A4D53457748775944565151444442684F566B6C4553554567523246745A564E30636D56686253424462476C6C626E5177676745694D4130470A4353714753496233445145424151554141344942447741776767454B416F49424151445957664C55644941374B56336752756B462F5838343878714C4D706E4A0A566571526373613148464B3659702B524D4D697267767978614F724F3843456F5366565154617049337A367778756B7448776677674D6D5742794934373530670A717A7A4B703048542B32626A66733859756F77362B6B6B3535634C533356425047496A444D484A30784C4F2B75614431337943656A64563532753957314D43640A31434841726242664450436A57466A37713758574973565468334D7A4538795870656D7676785939674B476B68486163374843326B5832544959614C4D51417A0A764857715647382B446D626C653174566231314D69655A4B535949322F4C36436335644F4C58306D57566E68544D666A6C495966464B734776353770744473770A456653573449712B4676576D2F4F6C476B6855444D3155506C6F3250347046464469766548466D6A5938482B3666476E71766F314C69514A41674D424141476A0A506A41384D41384741315564457745422F7751464D414D424166387744675944565230504151482F42415144416745474D426B4741315564446751534242436F0A71726D4F75712F454A4D55443630316A644F426D4D413047435371475349623344514542425155414134494241514169632B3969474553783350577671766E630A536139346A68486565435067567A545472553264783753533947756C3469796B382F484750654F2F743773427976314746596B7135566A66702F5A51476E6F530A6C56684C6B7442317861656733446935313773724A304345444E6951374F324D4772642B6C494A7A716648313270507565523739524B6A4967676945393379710A436B5676302B2F55366C2B6463743079625054334D4C715855586638614861757739424B47645464596C483372704C65574365355370503642336C52643162740A577744716535305736356A74326D334D48714B533336426D6B72664B2B7872687065776D73524F5644304261496B587A7A676C6F2F4773743533306A347A6D4A0A676B4E46616C736C4648306741384C6931424E6B684A50776262667757353235556D424A7233355646316759506A367543512F4E42797A6E505162345873504A0A674D74680A2D2D2D2D2D454E442043455254494649434154452D2D2D2D2D0A"

        java_pem = provider.load_file_to_bytes('client.crt')
        assert_java_hex = "2D2D2D2D2D424547494E2043455254494649434154452D2D2D2D2D0A4D494943786A4343416136674177494241674949594E592B53344850494F45774451594A4B6F5A496876634E4151454642514177497A45684D423847413155450A41777759546C5A4A52456C42494564686257565464484A6C59573067513278705A5735304D423458445445324D4451794D5445794E444D304F566F5844544D320A4D4451794D5445794E444D304F566F77497A45684D4238474131554541777759546C5A4A52456C42494564686257565464484A6C59573067513278705A5735300A4D494942496A414E42676B71686B6947397730424151454641414F43415138414D49494243674B43415145416E44667063622F784571484659544D332F7143520A4C7036732F736738596B45705A30556A5979704D35703266504F48415241715756444237584C36315A47446A4B7444424C636D4B5149687738416872574370430A554F75486C64496538335974636B7051615878515679342F737154532F7A6B74782B32572B4F75577037527646304968495A4E75486764784D5751723857444D0A6542574E5672392B47517648557261765250525767505349334B6E4B68482F575A763278487A4C4A566E387A367A6555347856623938374E30704C65724447300A7032716E5167585A4142693468312B48496C65305A714453755A6A31584E77534D4A54386B324C64776275735336444166796B4D4C73786672586573386465560A686C4647697475504D422B77577652627977762F4E49497051662F524A4C6242506538494F487330346C5531714B36376B6941415346657230324A64383946480A42514944415141424D413047435371475349623344514542425155414134494241514359367275472F2F7479523461756477506F587969476A51386A435046760A4C7268433243726D6E76634345762F6A6456322F6D737843366E4A505578794A306A42423273376778713137596159784F6C4A44764C2B6D5870746B4E4F70510A4151475862324869316936423431547378726D34742F61352B48793252482B32777168506B48667A594B795A36616E36512F69613061673135564745555461300A415A30357137743231567872434B7241734437594D3848797675594D587072757257525253533952513555345A6F504B36574C435055384A64715856656D354D0A754E6D4E7238384730485379696467494F36712B7068444D6A665966646F737243794A6872364B693878334B7A62593976544A444A596D6A6D357A6E464A47730A7152514E347A4A346E735054636A683557734B757A364D2B716451456B624F5153623846436A7579566F4F44414A523842366867685457570A2D2D2D2D2D454E442043455254494649434154452D2D2D2D2D0A"

        moonlight_pem = provider.load_file_to_bytes('client-ml.pem')
        asserted_moonlight_hex = "2D2D2D2D2D424547494E2043455254494649434154452D2D2D2D2D0A4D494944417A43434165756741774942416749424144414E42676B71686B694739773042415155464144416A4D53457748775944565151444442684F566B6C450A53554567523246745A564E30636D56686253424462476C6C626E51774868634E4D5459774D7A41314D5449304E544D345768634E4D6A59774D7A417A4D5449300A4E544D34576A416A4D53457748775944565151444442684F566B6C4553554567523246745A564E30636D56686253424462476C6C626E5177676745694D4130470A4353714753496233445145424151554141344942447741776767454B416F49424151446B4F39462B5776626A4633784F556E45397637435643712B32454B4D780A387250686B496D7857364B5974434C356B6F4B632F3332444443615454317668656D4B6D7053634D6E322F696B464A386C45516E746D48577049676C76686F7A0A396A30345936326E392F36446667544D595877515A5865416559674E3742596F4364356B7A2F316D7933584246556F6A786F5A7738734D6E364E716C75724B500A6841645164614E64764A33395A6D43656A323630676B396B682F6E2B766C6A34746D53776A467A33394E683161374E474A32322B6D76644753426842572F59520A36776F55592F764D6636474969637569476A793252474E58796136352B49355359396B6D4A6D6D68734B367954517A4A485A694F592B3335326F6E61786856560A617A71753359324A52494474394E4A434C76694A2F7553323161564B65564439575374386457307145703170426D7833746734347736417A41674D424141476A0A516A42414D41384741315564457745422F7751464D414D424166387744675944565230504151482F42415144416745474D4230474131556444675157424251710A393142502F754E646348386B2F4C56354E5A4C3777736B617244414E42676B71686B6947397730424151554641414F434151454158635557794B3279676436740A65545A4F353076496357306950306F7932756A6C324452475652437444585A394E49695A624865752F4E446934646C375371393746374E595561445532464B770A75696E41355A5A6B6F62444652443530624C61622F6E476644476B44645A6B6936463969394D372B6258572B7247686951657930345864704E755669645A2F4A0A2B744630752F666A3752776A2B4C426775707569386578474151574264662B685A4F6D526234334643764F5A543266354146584F447836724A4A7076673558460A5A2F736442746854364E6D745753637630586F734F4E745267664F4237676C4142326954754D6D394B62447A695270776A546F4134585A4A487476594C69646A0A4F4B77366F4636545075444A704139587873554F61776B4D5563687345504859542F6C2F714258744C6D62516D7334345356576746707135446F4A6A666E43650A346A76474654474258673D3D0A2D2D2D2D2D454E442043455254494649434154452D2D2D2D2D0A"

        self.assertEqual(asserted_moonlight_hex, PairingManager.bytes_to_hex(moonlight_pem))
        self.assertEqual(assert_java_hex, PairingManager.bytes_to_hex(java_pem))
        self.assertEqual(assertedCertHex, PairingManager.bytes_to_hex(certBytes))
Пример #2
0
    def testDataSigning(self):
        provider = CryptoProvider()
        privateKey = provider.get_client_private_key()
        cert = provider.get_client_cert()

        clientSecretAsHex = "7E72A5BFEB5679B35060E3C805CA233E"
        clientSecret = PairingManager.hex_to_bytes(clientSecretAsHex)

        # signedSecret = base64.b64encode(PairingManager.sign_data(clientSecret, privateKey))
        signedSecret = PairingManager.sign_data(clientSecret, privateKey)

        clientPairingSecret = PairingManager.concat_bytes(clientSecret, signedSecret)

        self.assertEqual(True, PairingManager.verify_signature(clientSecret, signedSecret, cert))
        self.assertEqual(False, PairingManager.verify_signature(clientSecret[:-1], signedSecret, cert))
        self.assertEqual(272, len(clientPairingSecret))