assert_se(p->parameters.rsaDetail.exponent == 0x10001);
check_tpm2b_public_fingerprint(&public, "d9186d13a7fd5b3644cee05448f49ad3574e82a2942ff93cf89598d36cca78a9");
+
+ /* RSA key with non-default (i.e. not 0x10001) exponent */
+ DEFINE_HEX_PTR(key_rsa2, "2d2d2d2d2d424547494e2050524956415445204b45592d2d2d2d2d0a4d494945765149424144414e42676b71686b6947397730424151454641415343424b63776767536a41674541416f49424151444a57573542387135564370694e0a6d6f4b4e374f2f6f306d6864347579696e2b75394b35397a5444754a4d773678574142533174424e45394e43746533326c354c4d4b6c454f42774c4636534e4d0a414e61764c51715a6a475050726a43574f6e5158316a7a5346794f5351727467417a66524e3873556436583775363047796e436f45584f6637786c39685778490a497232784f6d6a5756727564495a41323142616a6f4d6e7156466e654f43615a6335704d564d426f54516b4c366b56634778554f717959585a337a722f5531430a6f6d356c424e465a6446794a4f6b31666d386a4c2f752b53566d4f46534a4758473831673433536c783239496e766f32306963505051632b6a426e796c6b51340a7a386b51356a46724d736d4e306a6f4f546c484a6a6e485a6e496a732b315750525a4b73464534794b6a3641743555544d4c6a685864337a566e774e447855330a63754a744454656c41674d424141554367674541465770724b555838387a543366304a79464e524b77324d496b4d6d2b55506a443348546b6c6e47736f4e48640a4e38555164333171427843336869507855794d78756d5467564d6452412b34667a5965584d414176667257345655365276444963764c566e50796967536e354b0a724e6f58586e6c42364b7a4b744e6848527a4f4769412f71352b324d4a324137536d66562f4473555856363437544d65386d70464d522b3175374d38617666620a3262494a446362764442316268667844494d62466a2f69726a49376778727353387849555274636e704755594d517364325a664a2f714b52676b3635427a50300a6271736c70477a38574539437255464d58666149726f767a5a2b38584331592b574f68307745386e52346769714d4b47535a5a454a45495155446b39396174750a59613870564d62474131325a686e4732384773313756417337346238685871643152666a44454c7834514b4267514470357338326f59774a674e65626a6f78740a4341574b4d515a6b354d4d46444c4569784c6d616c48766c7332576b665573342f4d6a546b5739762f6876424e634a6d42353149617a5a365078544751484d2b0a34376a6258315156586170336f7a37664632415a733358566d3835464e4e7154756a4a5a684b6b42774143742b696c412f5a503562325a46366c6377626641610a526b6f79467131666e5933582b5563734a6e79384f3071336c774b42675144635830354b4c734c585673686839344e384531797952735030626a6a50687566510a706c6b334564696e4d4a464e52624b4648765563776a763276644f3276465567746667636c64744f546b6236674554413754624e6d334553384f7a59582f58490a576d4d774e4e4e782b753166775474774d4c66332f597a3851515573394f664c504f376d4f5a524b2f367a47717035685549567475357065453747536e6c53700a323869304343365349774b42674837355269492b2b716148684f656e3169394754587070683351432b5630502b5a364c436a6762676458447674795a676d58740a4a6e6b7a64366c4c65714834514b64573334336942784973676932794f74572f506a424a6946744c71454259437a71764d453069627332456156353967444a770a4f6f4a3675386237564c584c34596754776748426c4a4d5141484f56665530684a555146415a682f733348393539454e3837514341463833416f4741536c61660a4f3043414c70353476316b41575844552b4765766774394578414c68302b574b367a4a6f5239576d534838527a7a6d326469526a2f7268756579512f547131360a4556706a57516b424775715248505131304f33557a306a4571754f412f424d3579426c5a756c6f514a42582b76453578392b7073354e55444d757563504734660a505954484a4331754356744f5a374a676c334c7478416e326e504a6a4f65466f3356665435743843675945417a6c4170686c37522f6d6e4677757939464872490a714e456d6571654d556d6f584d4c59487444435964534d5246684d37394772737032574c5145775270775674416a5a6c53424d454c47716c542b77324d636a350a412b5453394c79445158446f7633444e462b6b705934664a654d335339757077415973344e645250423578526d4e575a4f5067307047476a695553767035634b0a46564c6c72464e59437555736c5950794331766f4a42513d0a2d2d2d2d2d454e442050524956415445204b45592d2d2d2d2d0a");
+ get_tpm2b_public_from_pem(key_rsa2, key_rsa2_len, &public);
+
+ DEFINE_HEX_PTR(expected_n2, "00c9596e41f2ae550a988d9a828decefe8d2685de2eca29febbd2b9f734c3b89330eb1580052d6d04d13d342b5edf69792cc2a510e0702c5e9234c00d6af2d0a998c63cfae30963a7417d63cd217239242bb600337d137cb1477a5fbbbad06ca70a811739fef197d856c4822bdb13a68d656bb9d219036d416a3a0c9ea5459de382699739a4c54c0684d090bea455c1b150eab2617677cebfd4d42a26e6504d159745c893a4d5f9bc8cbfeef925663854891971bcd60e374a5c76f489efa36d2270f3d073e8c19f2964438cfc910e6316b32c98dd23a0e4e51c98e71d99c88ecfb558f4592ac144e322a3e80b7951330b8e15dddf3567c0d0f153772e26d0d37a5");
+ assert_se(p->unique.rsa.size == expected_n2_len);
+ assert_se(memcmp(p->unique.rsa.buffer, expected_n2, expected_n2_len) == 0);
+
+ assert_se(p->parameters.rsaDetail.keyBits == expected_n2_len * 8);
+
+ assert_se(p->parameters.rsaDetail.exponent == 0x10005);
+
+ check_tpm2b_public_fingerprint(&public, "e037697b827a730d107fda6117c0affcff3e8648d15a62e52b251649b8f67e47");
}
#endif