)]}'
{
  "commit": "7ef43790617cb08b4bb4141df716dfb37385fe5c",
  "tree": "f5c7a17c60ffc70ca895b31004f4b74b086ded39",
  "parents": [
    "f523ca66612e6712f287aa4b4ed722a5f2d4d960"
  ],
  "author": {
    "name": "Bernd Edlinger",
    "email": "bernd.edlinger@hotmail.de",
    "time": "Sun May 10 06:37:12 2020 +0200"
  },
  "committer": {
    "name": "Bernd Edlinger",
    "email": "bernd.edlinger@hotmail.de",
    "time": "Wed May 13 06:28:36 2020 +0200"
  },
  "message": "Fix rsa8192.pem\n\nQ: How did I do that?\n\nA: That\u0027s a long story.\n\nPrecondition: I used sage 8.1 for the math, it could probably\ndone with simple python as well but I did not try.\n\nFirst I extract numbers from rsa8192.pem:\n\nopenssl rsa -in rsa8192.pem -noout -text | sed \"s/://g; s/ //g;\"\n\ncut\u0026paste the numbers into sage:\n\nmodulus\n00890d9fd57e81b5ed43283d0ea020\n4a1229333d6fb9c37a179375b09c4f\n7b5b1cf2eb025979b6d90b709928a0\n6725e04caf2b0f7fe94afbdf9f3fa5\n66f1ba75c2f6dc488039f410eb5fa8\nab152b8cfdb76791bb853059438edf\nae56bc70a32a9f3e2d883e8b751d08\n3797999dc81a9c4d6bdb3a75362fd1\nd9c497cf5028dfcdd4cc3eb318e79f\nc0db45cbeed955da8a447f0872dee5\n65bde4013340e767731441fae4fa54\n51356bfbc84e1271b39f111f5f8ef3\na6c8973765b39addef80306194f4ea\n89fdfc8e9744866323f6936de89b2f\ne2741578b8eb3c41676702fabc50ec\nc376e6b7b6e7f94e7d7b5c1bab3c9f\n23bb0c8f04d8aca64c309fc063c406\n553e1c1421cc45060df7f48c49f5c5\nb459d572e273402d6a3ff008657fe9\n1936714d1823c5cad53d80630b3216\n9bf70feb2ebc1af6a35ee0bf059aed\n49c4e367d567e130e2846859b271fd\na8949b182e050819866b8e762ed29f\nfb3f7ca14cebfc2488662be4b3980f\nc8d31890a05f38ae9690cc7d9d3efc\n4808e03da104a8c28bb480bb814995\na6e8b8978ab8350d90b3894e3abf7d\nc4ad0956335752c8d6944b38a1715e\n7d9950f49e6cdba171fbe651a2ca26\n65a7c70b6e8cf3a02c2f93dad8aa95\n06481cdb032d04082a5a6c6a733b65\n20fa80e2ef57b9cf858ca5ea11e084\nbc31a386fc6b099f069786207f80d6\n1f2bef294400d59394ad1006431366\na54ae09b0ecd3377dcd8af8fde9b94\nfd559b0b7adc5113ba66fc4b3dc842\nee562cfcfd39b4ffc31576635873fc\n59535b7aa98605772436c251834e23\n4fb2347cc970a49818cac2a9ee95eb\nb55fa2da66edd53e11245c6732140a\nae41491288cbf462eef8a807b46d0d\naffa38d9ccfe8033d2d4a3cf5c5b82\n9df12183f7a05d3650153cd317a017\n083ac641c2c3ad11305de0a032be45\nc439bd7bbbe3cb97850f9d2c66f72a\n4a66e9d434544fc6d294ca3c92627b\ne518bfa44e3017ac8ad9c0a26a227d\n2e8677da0a4de8edb53ac9530adb63\n83c72dbf562dc4d0fea4e492f09eb1\n74548381a8686db3aeaaa3a9960cff\n25e8c64701115da54fa7a1fb2c566a\nfcb4b2a63268d818c3391a62885d13\n41b3492c4f0167291b3d026a44e68c\n02f2d4d255d4c0906b92a2ced0c0bb\nf2bcdceaec1189895af4232dc386c9\n75bf3477e5a70d3ab0ac0e5dc37024\n0e34a276b155d5e290f77416a1986d\nec47f8c78236ac7df249df9ba21a80\n2e6bd75b4fb1c6ffe0f4cf548761a5\n6a1fcccee156523a718987f3fdaedc\n7171c9050db89a83f24c5a283695b9\nc28de6d3b69fc1714b0add335a0ce6\nfbbdbd0bbdb01e44969d775105bba3\nd2947dca2f291250f9b851e76f514d\ndc5a3aa4498e6521314991568860eb\nff1258d8b4aee9ee4159153684c0c0\n16c60b17537a50b53cd59aad60678b\nd73f0714ab4ccae7416bab417b4907\n36d59b2e9f\n\nI used echo `echo \"\u003cpaste\u003e\" ` | sed \"s/ //g\"\nto get everything in one line, put that again\ninto the clipboard and\nthen start sage, type N\u003d0x\u003cpaste\u003e\u003cCR\u003e\n\nsage: N\u003d0x00890d9fd57e81b5ed43283d0ea0204a1229333d6fb9c37a179375b09c4f7b5b1cf2eb025979b6d90b709928a06725e04caf2b0f7fe94afbdf9f3fa566f1ba75c2f6dc488039f410eb5fa8ab152b8cfdb76791bb853059438edfae56bc70a32a9f3e2d883e8b751d083797999dc81a9c4d6bdb3a75362fd1d9c497cf5028dfcdd4cc3eb318e79fc0db45cbeed955da8a447f0872dee565bde4013340e767731441fae4fa5451356bfbc84e1271b39f111f5f8ef3a6c8973765b39addef80306194f4ea89fdfc8e9744866323f6936de89b2fe2741578b8eb3c41676702fabc50ecc376e6b7b6e7f94e7d7b5c1bab3c9f23bb0c8f04d8aca64c309fc063c406553e1c1421cc45060df7f48c49f5c5b459d572e273402d6a3ff008657fe91936714d1823c5cad53d80630b32169bf70feb2ebc1af6a35ee0bf059aed49c4e367d567e130e2846859b271fda8949b182e050819866b8e762ed29ffb3f7ca14cebfc2488662be4b3980fc8d31890a05f38ae9690cc7d9d3efc4808e03da104a8c28bb480bb814995a6e8b8978ab8350d90b3894e3abf7dc4ad0956335752c8d6944b38a1715e7d9950f49e6cdba171fbe651a2ca2665a7c70b6e8cf3a02c2f93dad8aa9506481cdb032d04082a5a6c6a733b6520fa80e2ef57b9cf858ca5ea11e084bc31a386fc6b099f069786207f80d61f2bef294400d59394ad1006431366a54ae09b0ecd3377dcd8af8fde9b94fd559b0b7adc5113ba66fc4b3dc842ee562cfcfd39b4ffc31576635873fc59535b7aa98605772436c251834e234fb2347cc970a49818cac2a9ee95ebb55fa2da66edd53e11245c6732140aae41491288cbf462eef8a807b46d0daffa38d9ccfe8033d2d4a3cf5c5b829df12183f7a05d3650153cd317a017083ac641c2c3ad11305de0a032be45c439bd7bbbe3cb97850f9d2c66f72a4a66e9d434544fc6d294ca3c92627be518bfa44e3017ac8ad9c0a26a227d2e8677da0a4de8edb53ac9530adb6383c72dbf562dc4d0fea4e492f09eb174548381a8686db3aeaaa3a9960cff25e8c64701115da54fa7a1fb2c566afcb4b2a63268d818c3391a62885d1341b3492c4f0167291b3d026a44e68c02f2d4d255d4c0906b92a2ced0c0bbf2bcdceaec1189895af4232dc386c975bf3477e5a70d3ab0ac0e5dc370240e34a276b155d5e290f77416a1986dec47f8c78236ac7df249df9ba21a802e6bd75b4fb1c6ffe0f4cf548761a56a1fcccee156523a718987f3fdaedc7171c9050db89a83f24c5a283695b9c28de6d3b69fc1714b0add335a0ce6fbbdbd0bbdb01e44969d775105bba3d2947dca2f291250f9b851e76f514ddc5a3aa4498e6521314991568860ebff1258d8b4aee9ee4159153684c0c016c60b17537a50b53cd59aad60678bd73f0714ab4ccae7416bab417b490736d59b2e9f\n\nlikewise for prime1 (P), prime2 (Q) and\nprivateExponent (D) and publicExponent (E)\n\nsage: P\u003d0x00c6d6eb9c0f93f8b8de74b2799798c1c1ed47549426a0d76af61f04f0b455184acfeec354c1703709e8727ea0213001738e395b5ca5ed4deec30f8b1ae0e54a516777c5ae897a5562e77dfe378dbba32ee30bcdb275ab7f87f8b9af02712d371a6aa671b44e0f667a6f2d406e5099d942f592ff5c517d452d58cf3f51120062a878fb77066650275b897caf078a5353f1d714963ff90818b6b87c6db438681b4b315c4fd256c1bd383fcf8e67b49a3ee077373a66d77e4c02eebe9350478a51cdfa395d60d905c1189ed7041373f1609075faf9d9f39d3d7b0e7fc8b1d36cb8c5c48731ef5cd87e11f480cdfa4b3ee6cf7eebd3e13f4244647396d52030b82c39d69a3a4075ee90531d1ddb5f1284dc7ab09a3892de5c0ddeed115c7c9ee5fc008658830b0e6f7f366a72f215192498474ade046fc10e92591dfa133e4beff98758e0e92c05f999504a486e3f71c15b73adf7fe0d311f0d0dc1a8e2aff92572475a92e60f970174c80c4948a0cb86635cb438519b18c260ff9f212925e684ef151cc91fa1c4c8dbbc337c9b46f9a93c88cce49e49a670762186e8858051f93ebff7b0b50caadd9b32f93e396b5a6d1cd7f77b2e50e83fae5f3928433268f6cc28810071ce334025a24c7ebf92e631df0d26e99923018946de4ea5e30e868c33ea3d408d8c58815ecf9892fa3afa5f6fbef9a1dfda2da51b6f01f3dae588bdf17b\nsage: Q\u003d0x00b073b35a3bba0954b242961630e8e0af8d3ea8aad80d55669e9e79c388983363d96fe471205743001b4798b81de1be3fb06353fd0c9c4fd43f91f9cb2162b00583cc94ff791a615348d01977ca05f4796d5bff41d94dda1cb3ef2433ff4f6500d15ab290a14e651efa91b7df5d5e50f8356188d9842dcdd67c89eb7d40baa78f045969b804f7a985d35a8a8ac32715cb212a34fb89e85e538275e53663fe675944d2b5dba77b7b7abfacd8fbddee4427db6460b728952af882992750c2542d2122247d7f431ec2fe64c0311b0de5290eb619c6ab476308d59f3efff7255d07ebb51fe64ac5967c0b79bae07d36283cf768c8eee2054349cefe90876da66a52e9e0ff20cc00a40fb0c69524e7a01e5c2f07239831a0fa2f56ad405b3a25537907d990e8f5a3e4f3df99dda6afc30d4565aa5881f64adcc6f6be4077893c7e7710623e6158359c3facfef5036779903065fd0d0a2ed8bf2e53a46758dbff06284670bf10bd2e13cba4323ce50fa43df373bd0940011c424f41c5035a10b8095f420ddb67189f6dad62f1257b0f46e353a90eacc145c7db74998a5d0d8772ba1286eb582504465290171e4db87f2e89564214a2317953a7307b1b4c8dad5920866087d7ae80845478813bdf5f6740d0f3b975a344272804b036e4fef09e91d60d1a730fda2f5c222f7636bbe252f9a6caa86d5e8be7e7db2cf912817a0898a4742d\nsage: D\u003d0x3b900240c4a416aeb09b123e02f5457bb31023c9249081c5313edaac741686388492020964ce4471a653c9c63c4dc7b74c0188d0ec50bc3a29797da6c9b3616e83dea45ba5d41e6e4cba7eefca6791f45d3c86a491a899a5c42c7e61930a3681d281f34e4b49707e9bba74f68f7a91274c92904b546b5fe6267c5b8ad8d8bb199a523d7fbb5a40748b56dfccf074f3d664e705153dd903b7cd95bac556be3ab59a165d7cbb765e21a4a1d97e34b412baf1caacb57543d2bd8e5ae5cd2a86dc41e256f3f5c0073052859d1c8a12f4973caa88de2e5eb2eef8d6ebdb66fe154d8e383cba74693753affaf4dbc8e2988c08f947b1f8473a7163775656448572c325250ad2cd75c9f5d42721b91ae8fb427773605afa2f4297daf7ab34f5d71144185f3f5cbc94041081fae19fd5d47fc49421080edc5d658b5f223fb1e9b172f4da1a92263fa922225d4c0231e35d94d276fcb0e0999f5f26068528c83f49b0dd79fb157c49fe8b3d80e7cd2b3da76478ebd2ae2c8164583bee2f96591e2f41ad799ae0e2855a5699996fb2c7efb69f86874bca58628e512d579b247e43ee8db04b424e84e44cf753f86e12dd8d2e0ea0b800e6c313317c14658993b8e04c7fb5de1cba0829123dc518957be2a46f76f8ff305fee17b2310bfdd66a93c8b050451f8ceb26c518b7abb72faf08fca0bf6df8a80de511ffc00dc350cd87e52c9cf5771892300e420929da698b6b973da849c89410f089e9b39de79fc1a01a27d2f879ce5cd80ca0a3899d9f480c68d7a5f8c8b3c74936b19f0c7174987df437658046adaffdaddc3540be7fc06a1d2290f58ad9a2992d32e9ecbadf2eed961b4e68c8a89a5709a334082ad297348c4c31c54a3dadccb93afaa9f1786c4167021d4a16dd78afb41131bdd651357bd44f42cfee5d03fdfae087255d18a6a41c03aa6408b6097d8a6848cbbf05a7f20207d5673ea5e6dc849d5d3009c6e8a6c41285cd64f71b536d8345d61f404079278facde0d6e2264cbe655e877468bd3e76380d91f282f26ae17e41a1bac76c148c4c75dd22656816ab259e2c79920e27e6bcfa83732ac6e0a245dcd9cc82f69e45019cf53ac39bebca3ddea0f55ef97b6d8f7b7eadaae792fb1b55c73cf2ed644e651a22c60ed9c0bb063c50fadda6beccbf6c88c41ef1546bab5f21dbe4fbeeb11f3c5c40fa1cc3df2c11bfe7910d1d36a5ec6e66462c7e216481008931039299d23f2be4d838fb010b661a8541a8b7f7bf7d6c8032895e82133e24c835e5a3491249ec69f28e22cf9b0fab9be9ea17026fbadd470eee4676d7ac79976a1c6807e89b5dabab815ffa076caeaeb53f505a31129dac1e9f0b5d919f17aced63574c8524000022b6bc6cb9c8d6a06e44c72e055a1e2706e736af241ab3084fa56cf942aa139440f74e230be31cd8dd4bf0cbdd657f1\nsage: E\u003d0x10001\n\ncheck:\nsage: is_pseudoprime(P)\nTrue\nsage: gcd(N,P)\n811194519730394220204949383061971492284209477134487451053533919242408334468793875483685418435472924384137737409878754330061341487239404629370463160720071782806016579636145456953095810661706004899017496722730291178259805745059054744795252171022091469940626116746608128441399036310378334222880519662696558703165249434265697658704322903051581598088400258377253583825209022558177374913570364047051007093402547387492492645729748176160840842076964161794363721255756097675823463557162877865622894488049720201680509519072521257128596878592149455958732762099800396648453225220977153025222265023206761554302369499402146842619059859650958489842850140873473393484632985863967898676228674751576699965523367097641503814266418957281198265955430221973482931544501209059788536033857660452959160612655542331433647351037413298986228798018950712662579341162832440884265576141868775326408627532047094505284395403786932363148262901839514736964209136867574532808481484592060405175685831168554790879720280778881035860464184791941816702480873202940903024652495084770128062224279875598826600084633389722629461385386069921483006677287847102371176994910369378323222717613076771700378608286670543729473076010314569999636269167049088093674649352610884381826740603\nsage: N%P\n0\n\n\u003e\u003e P seems to be a prime, and is indeed a factor of N.\n\nsage: is_pseudoprime(Q)\nFalse\nsage: gcd(N,Q)\n1\nsage: ecm(Q)\nFound composite factor of 3 digits: 675\nComposite cofactor ... has 1231 digits.\nQ has a small factor.  The large cofactor\nis way too large to be factorized (today).\n\n\u003e\u003e Q must be wrong.\n\nsage: pow(pow(2,E,N),D,N)\n2\nsage: pow(pow(3,E,N),D,N)\n3\nsage: pow(pow(5,E,N),D,N)\n5\nsage: pow(pow(7,E,N),D,N)\n7\nsage: pow(pow(11,E,N),D,N)\n11\nsage: pow(pow(1000,E,N),D,N)\n1000\n\n\u003e\u003e x^D mod N is indeed the inverse of x^E mod N\n\u003e\u003e D seems to be correct.\n\n\u003e\u003e now compute\nsage: Qcorrect \u003d N/P\nsage: is_prime(Qcorrect)\nFalse\nsage: is_pseudoprime(Qcorrect)\nTrue\n\n\u003e\u003e surprise, this is a sage artefact.\n\u003e\u003e is_prime is supposed to tell if Qcorrect\n\u003e\u003e is a provable prime, but these numbers are\n\u003e\u003e too large for a proof.\n\nsage: help(Qcorrect)\nclass Rational\n...\n\n\u003e\u003e oops, it is of course not a rational number.\n\nsage: Qcorrect \u003d Integer(N/P)\nclass Integer\n...\n\n\u003e\u003e okay now it is an integer.\n\nsage: is_prime(Qcorrect)\n\u003e\u003e takes way too long: press CTRL-C\nsage: is_pseudoprime(Qcorrect)\nTrue\n\n\u003e\u003e so the correct Q seems to be a prime.\n\nsage: Q-Qcorrect\n4468358315186607582623830645994123175323958284313904132666602205502546750542721902065776801908141680869902222733839989940221831332787838985874881107673910358472026239723185949529735314601712865712198736991916521419325287976337589177915143787138292689484229106140251936135768934015263941567159094923493376\nsage: hex(Q-Qcorrect)\n\u00271a10400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\u0027\n\n\u003e\u003e interesting, now figure out the bits that are flipped in Q:\n\nQ         ...20ddb67189f6dad...\nQcorrect  ...20dd9c6149f6dad...\n\n$ openssl rsa -in rsa8192.pem -outform der -out rsa8192.der\nwriting RSA key\n$ xxd -ps \u003c rsa8192.der \u003e rsa8192.hex\n$ sed \"s/20ddb67189f6dad/20dd9c6149f6dad/\" \u003c rsa8192.hex \u003e rsa8192.out\n$ diff rsa8192.hex rsa8192.out\n100c100\n\u003c 10b8095f420ddb67189f6dad62f1257b0f46e353a90eacc145c7db74998a\n---\n\u003e 10b8095f420dd9c6149f6dad62f1257b0f46e353a90eacc145c7db74998a\n\n\u003e\u003e et voila\n\n$ xxd -ps -r \u003c rsa8192.out \u003e rsa8192.der\n$ openssl rsa -inform der -in rsa8192.der -out rsa8192.pem\nwriting RSA key\n$ openssl rsa -check -noout -in rsa8192.pem\nRSA key ok\n$ git diff\ndiff --git a/apps/rsa8192.pem b/apps/rsa8192.pem\nindex 946a6e5..83d962f 100644\n--- a/apps/rsa8192.pem\n+++ b/apps/rsa8192.pem\n@@ -1,5 +1,4 @@\n -----BEGIN RSA PRIVATE KEY-----\n-\n MIISKAIBAAKCBAEAiQ2f1X6Bte1DKD0OoCBKEikzPW+5w3oXk3WwnE97Wxzy6wJZ\n ebbZC3CZKKBnJeBMrysPf+lK+9+fP6Vm8bp1wvbcSIA59BDrX6irFSuM/bdnkbuF\n MFlDjt+uVrxwoyqfPi2IPot1HQg3l5mdyBqcTWvbOnU2L9HZxJfPUCjfzdTMPrMY\n@@ -62,7 +61,7 @@ JH1/Qx7C/mTAMRsN5SkOthnGq0djCNWfPv/3JV0H67Uf5krFlnwLebrgfTYoPPdo\n yO7iBUNJzv6Qh22malLp4P8gzACkD7DGlSTnoB5cLwcjmDGg+i9WrUBbOiVTeQfZ\n kOj1o+Tz35ndpq/DDUVlqliB9krcxva+QHeJPH53EGI+YVg1nD+s/vUDZ3mQMGX9\n DQou2L8uU6RnWNv/BihGcL8QvS4Ty6QyPOUPpD3zc70JQAEcQk9BxQNaELgJX0IN\n-22cYn22tYvElew9G41OpDqzBRcfbdJmKXQ2HcroShutYJQRGUpAXHk24fy6JVkIU\n+2cYUn22tYvElew9G41OpDqzBRcfbdJmKXQ2HcroShutYJQRGUpAXHk24fy6JVkIU\n ojF5U6cwextMja1ZIIZgh9eugIRUeIE7319nQNDzuXWjRCcoBLA25P7wnpHWDRpz\n D9ovXCIvdja74lL5psqobV6L5+fbLPkSgXoImKR0LQKCAgAIC9Jk8kxumCyIVGCP\n PeM5Uby9M3GMuKrfYsn0Y5e97+kSJF1dpojTodBgR2KQar6eVrvXt+8uZCcIjfx8\n@@ -98,4 +97,3 @@ TwEgE67iOb2iIoUpon/NyP4LesMzvdpsu2JFlfz13PmmQ34mFI7tWvOb3NA5DP3c\n rMlMLtKfp2w8HlMZpsUlToNCx6CI+tJrohzcs3BAVAbjFAXRKWGijB1rxwyDdHPv\n I+/wJTNaRNPQ1M0SwtEL/zJd21y3KSPn4eL+GP3efhlDSjtlDvZqkdAUsU8\u003d\n -----END RSA PRIVATE KEY-----\n-\n\n\u003e\u003e DONE.\n\nFixes #11776\n\nReviewed-by: Paul Dale \u003cpaul.dale@oracle.com\u003e\nReviewed-by: Matthias St. Pierre \u003cMatthias.St.Pierre@ncp-e.com\u003e\n(Merged from https://github.com/openssl/openssl/pull/11783)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "946a6e5433cefe8a98015c750f970aac9b08176c",
      "old_mode": 33188,
      "old_path": "apps/rsa8192.pem",
      "new_id": "83d962f40f0f7924a31e55ffcd2ee643d3ef4a91",
      "new_mode": 33188,
      "new_path": "apps/rsa8192.pem"
    }
  ]
}
