{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":232879988,"defaultBranch":"main","name":"runtime","ownerLogin":"bartonjs","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2020-01-09T18:44:45.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/10642668?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1724795373.0","currentOid":""},"activityList":{"items":[{"before":"1d453f396250330e08a676b35f36cae9bc9db3b0","after":null,"ref":"refs/heads/correct_ksp","pushedAt":"2024-08-27T21:49:33.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"}},{"before":"6f72108b66980f5617f4a645745ad7e79a103185","after":"1d453f396250330e08a676b35f36cae9bc9db3b0","ref":"refs/heads/correct_ksp","pushedAt":"2024-08-27T16:09:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Name the 0x20/EphemeralKeySet const","shortMessageHtmlLink":"Name the 0x20/EphemeralKeySet const"}},{"before":null,"after":"6f72108b66980f5617f4a645745ad7e79a103185","ref":"refs/heads/correct_ksp","pushedAt":"2024-08-27T00:29:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"New cert loader should load into CNG by default\n\nWhen no provider attribute is present on a key, Windows loads the key into the\nCAPI Base provider unless PKCS12_PREFER_CNG_KSP is set. So, set that flag.\n\nOn .NET Framework (or .NET Standard running on .NET Framework) we don't\nhave the power to set that flag (without completely redefining how the PFX load\nloads), so inject a synthetic attribute to force keys into the CNG KSP when\nPreserveStorageProvider isn't set.\n\nTechnically these two approaches differ when the incoming PFX has no name\nand PreserveStorageProvider is set (CoreFX: CNG, NetFX: CAPI Base), but that's\nunlikely, and consistent with .NET Framework imports.","shortMessageHtmlLink":"New cert loader should load into CNG by default"}},{"before":"c2f86ba3d7e8e15992030e5bcde7fff61432b18a","after":null,"ref":"refs/heads/dsaparm_sanitycheck","pushedAt":"2024-07-11T01:45:36.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"}},{"before":"49ea3f4ef5a2c13d0e9bf6bfc69e9ddd1c070c17","after":null,"ref":"refs/heads/asn_oidlen","pushedAt":"2024-07-10T17:54:03.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"}},{"before":"1056cd8842deebf8b0be04705655cf02833f0fa6","after":"c2f86ba3d7e8e15992030e5bcde7fff61432b18a","ref":"refs/heads/dsaparm_sanitycheck","pushedAt":"2024-07-10T16:26:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Update src/libraries/Common/src/System/Security/Cryptography/DSAKeyFormatHelper.cs\n\nCo-authored-by: Stephen Toub ","shortMessageHtmlLink":"Update src/libraries/Common/src/System/Security/Cryptography/DSAKeyFo…"}},{"before":"cec278ac2de2a322717879b83659154e3d141f52","after":"1056cd8842deebf8b0be04705655cf02833f0fa6","ref":"refs/heads/dsaparm_sanitycheck","pushedAt":"2024-07-09T21:51:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Do more DSA parameter sanity checking up front\n\nDSA parameters have a very rigid structure. We can do some checks\nbefore we create a lot of `byte[]` to package the data to pack into\na different buffer to send to the OS library.\n\nChecking primality and any other actual value coherency is left to\nthe underlying cryptographic library, these just filter egregious errors.","shortMessageHtmlLink":"Do more DSA parameter sanity checking up front"}},{"before":"6e78e4ae22094e081b4f683ed3ad3e42de56b68f","after":"cec278ac2de2a322717879b83659154e3d141f52","ref":"refs/heads/dsaparm_sanitycheck","pushedAt":"2024-07-09T21:43:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Do more DSA parameter sanity checking up front\n\nDSA parameters have a very rigid structure. We can do some checks\nbefore we create a lot of `byte[]` to package the data to pack into\na different buffer to send to the OS library.\n\nChecking primality and any other actual value coherency is left to\nthe underlying cryptographic library, these just filter egregious errors.","shortMessageHtmlLink":"Do more DSA parameter sanity checking up front"}},{"before":null,"after":"6e78e4ae22094e081b4f683ed3ad3e42de56b68f","ref":"refs/heads/dsaparm_sanitycheck","pushedAt":"2024-07-09T21:40:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Do more DSA parameter sanity checking up front\n\nDSA parameters have a very rigid structure. We can do some checks\nbefore we create a lot of `byte[]` to package the data to pack into\na different buffer to send to the OS library.\n\nChecking primality and any other actual value coherency is left to\nthe underlying cryptographic library, these just filter egregious errors.","shortMessageHtmlLink":"Do more DSA parameter sanity checking up front"}},{"before":null,"after":"49ea3f4ef5a2c13d0e9bf6bfc69e9ddd1c070c17","ref":"refs/heads/asn_oidlen","pushedAt":"2024-07-09T21:36:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Limit the size of OID supported by AsnDecoder/AsnReader\n\nAssuming we don't run across a case where we need to service in\nan AppContext switch for compat, we should look at replacing BigInteger\nwith Int128 in a subsequent release.","shortMessageHtmlLink":"Limit the size of OID supported by AsnDecoder/AsnReader"}},{"before":"89213ab48859f8033519db57362911be3205e762","after":null,"ref":"refs/heads/ios_failures","pushedAt":"2024-07-04T17:50:33.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"}},{"before":"764754c4a9d898de59fa093e6db6fcc6a9ffc8a1","after":null,"ref":"refs/heads/pfx_dupattrs","pushedAt":"2024-07-04T04:21:50.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"}},{"before":"6cc0cbb0c3aed0ee45b7d101211a9942a1bec887","after":"89213ab48859f8033519db57362911be3205e762","ref":"refs/heads/ios_failures","pushedAt":"2024-07-04T00:36:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Fix iOS CertLoader not recognizing PEM content","shortMessageHtmlLink":"Fix iOS CertLoader not recognizing PEM content"}},{"before":null,"after":"6cc0cbb0c3aed0ee45b7d101211a9942a1bec887","ref":"refs/heads/ios_failures","pushedAt":"2024-07-04T00:31:15.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Don't run ExportMultiplePrivateKeys on platforms that don't have Exportable","shortMessageHtmlLink":"Don't run ExportMultiplePrivateKeys on platforms that don't have Expo…"}},{"before":"aabdbd824c64763e7e58b47f2851fbe302d2c274","after":"764754c4a9d898de59fa093e6db6fcc6a9ffc8a1","ref":"refs/heads/pfx_dupattrs","pushedAt":"2024-07-03T18:56:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Delete out of date comment, unnecessary code","shortMessageHtmlLink":"Delete out of date comment, unnecessary code"}},{"before":"9ada73ae85fc166820c4812c5eefa433145b09d2","after":"aabdbd824c64763e7e58b47f2851fbe302d2c274","ref":"refs/heads/pfx_dupattrs","pushedAt":"2024-07-03T17:57:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Create a new HashSet per import, rather than cache in a ThreadStatic","shortMessageHtmlLink":"Create a new HashSet per import, rather than cache in a ThreadStatic"}},{"before":null,"after":"9ada73ae85fc166820c4812c5eefa433145b09d2","ref":"refs/heads/pfx_dupattrs","pushedAt":"2024-07-03T03:57:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Make CertLoader reject duplicate attributes\n\nThe new Pkcs12 loader will now reject duplicate attributes,\neither as multiple attribute sets, or a set with multiple values.\n\nThe LoaderLimits type gains an option to disable this filter, but\nas of now it is not being made into public API (though the tests\nshow how to get at it anyways, by the cloning behavior on\nDangerousNoLimits).\n\nThis change also fixes the over-filtering of the MachineKey attribute,\nand adds tests for how that behaves under DefaultKeySet.","shortMessageHtmlLink":"Make CertLoader reject duplicate attributes"}},{"before":"0dd27679fe05ed52f89bac034e0cefa1492cbc32","after":"55f2bc67dd703625cb72fefa4c5a914431639a6c","ref":"refs/heads/main","pushedAt":"2024-06-27T20:24:04.000Z","pushType":"push","commitsCount":2348,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"[mini] Use atomics instead of loader lock for JIT wrappers and trampolines (#104038)\n\n* [mini] Use atomics, instead of loader lock, for JIT wrappers\r\n\r\n Related to https://github.com/dotnet/runtime/issues/93686\r\n\r\n While this doesn't eliminate all deadlocks related to the global loader lock and managed locks, it removes one unneeded use of the loader lock.\r\n\r\n The wrapper (and trampoline) of a JIT icall are only ever set from NULL to non-NULL. We can use atomics to deal with races instead of double checked locking. This was not the case historically, because the JIT info was dynamically allocated - so we used the loader lock to protect the integrity of the hash table","shortMessageHtmlLink":"[mini] Use atomics instead of loader lock for JIT wrappers and trampo…"}},{"before":"dce56f46657d2e0dbc1a4cf77c780ef3ae11b980","after":null,"ref":"refs/heads/x509loader","pushedAt":"2024-06-25T22:10:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"}},{"before":"cbcf611b769202851d30250a2cb64f9fe3237239","after":"dce56f46657d2e0dbc1a4cf77c780ef3ae11b980","ref":"refs/heads/x509loader","pushedAt":"2024-06-24T21:49:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Use lax reading in Android content filter","shortMessageHtmlLink":"Use lax reading in Android content filter"}},{"before":"4d2a0af9a8093f1b234a2572ee45b44e7c45f8cc","after":"cbcf611b769202851d30250a2cb64f9fe3237239","ref":"refs/heads/x509loader","pushedAt":"2024-06-24T18:13:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Prevent Android PKCS7 content sniffing in X509 load","shortMessageHtmlLink":"Prevent Android PKCS7 content sniffing in X509 load"}},{"before":"2ee13b3a39aeecb0baf6e3a5254a3e5ba28892b3","after":"4d2a0af9a8093f1b234a2572ee45b44e7c45f8cc","ref":"refs/heads/x509loader","pushedAt":"2024-06-22T19:36:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Full swap is important in both Debug and Release\n\nFor one, the code as written lost the attributes it should have preserved.\nFor two, the swapped in attribute might be important.","shortMessageHtmlLink":"Full swap is important in both Debug and Release"}},{"before":"96ed4b9e7ebe9077feb51bc87a8bec86943129b7","after":"2ee13b3a39aeecb0baf6e3a5254a3e5ba28892b3","ref":"refs/heads/x509loader","pushedAt":"2024-06-21T08:49:50.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Fix netfx test build","shortMessageHtmlLink":"Fix netfx test build"}},{"before":"39075b3dcd8e0d23b4a53f80566017653a98562d","after":"96ed4b9e7ebe9077feb51bc87a8bec86943129b7","ref":"refs/heads/x509loader","pushedAt":"2024-06-21T08:45:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Fix netfx test build","shortMessageHtmlLink":"Fix netfx test build"}},{"before":"5ef81e0ef8a2198a461872a44c14907e26c7ee44","after":"39075b3dcd8e0d23b4a53f80566017653a98562d","ref":"refs/heads/x509loader","pushedAt":"2024-06-20T23:41:14.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Use more varied subject names in WindowsAttribute tests","shortMessageHtmlLink":"Use more varied subject names in WindowsAttribute tests"}},{"before":"cf1ae303005c85574819e4d78131970698b061c6","after":"5ef81e0ef8a2198a461872a44c14907e26c7ee44","ref":"refs/heads/x509loader","pushedAt":"2024-06-20T18:38:11.000Z","pushType":"push","commitsCount":268,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'dotnet/main' into x509loader","shortMessageHtmlLink":"Merge remote-tracking branch 'dotnet/main' into x509loader"}},{"before":"e45cf607424694dc24ffdc4c488fb47ff612024c","after":"cf1ae303005c85574819e4d78131970698b061c6","ref":"refs/heads/x509loader","pushedAt":"2024-06-19T23:52:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Clean up test scaffolding from feature standup","shortMessageHtmlLink":"Clean up test scaffolding from feature standup"}},{"before":"f1cab831b6f1eac0cd3cc68e87de23c3032a11b2","after":"e45cf607424694dc24ffdc4c488fb47ff612024c","ref":"refs/heads/x509loader","pushedAt":"2024-06-18T23:54:09.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Fix handling of DSA keys in cert loader on macOS","shortMessageHtmlLink":"Fix handling of DSA keys in cert loader on macOS"}},{"before":"e58c076da87c92fa61d6be9d11d4ed5f8cc6310e","after":"f1cab831b6f1eac0cd3cc68e87de23c3032a11b2","ref":"refs/heads/x509loader","pushedAt":"2024-06-18T22:15:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"},"commit":{"message":"Apply further feedback","shortMessageHtmlLink":"Apply further feedback"}},{"before":"5bb33450b42b4738f0e04c674c1afb3b6c11ee1b","after":null,"ref":"refs/heads/bf_package","pushedAt":"2024-06-17T23:57:17.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bartonjs","name":"Jeremy Barton","path":"/bartonjs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10642668?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0yN1QyMTo0OTozMy4wMDAwMDBazwAAAASl2bDy","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0yN1QyMTo0OTozMy4wMDAwMDBazwAAAASl2bDy","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNi0xN1QyMzo1NzoxNy4wMDAwMDBazwAAAARn5GU3"}},"title":"Activity · bartonjs/runtime"}