{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":130633100,"defaultBranch":"master","name":"ciphersweet","ownerLogin":"paragonie","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-04-23T03:07:36.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/11591525?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1715184890.0","currentOid":""},"activityList":{"items":[{"before":"e7e7193d4bc449efaeb73c1c00711e5980ba73d3","after":"1081aebe42ae9fe62c398a6e646beb46920fe5b8","ref":"refs/heads/master","pushedAt":"2024-05-08T16:14:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Support constant_time_encoding v3","shortMessageHtmlLink":"Support constant_time_encoding v3"}},{"before":"ffc160e0e7fbb9075d17e365a3dcc035c9d44d0e","after":null,"ref":"refs/heads/v3.x-sc2","pushedAt":"2024-04-19T23:20:57.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"}},{"before":"6d3ea97a4a82dfbe740ece5341890d3295554b1e","after":"24db265b494c3e477af60d5b4b2105f634883137","ref":"refs/heads/v3.x","pushedAt":"2024-04-19T23:20:55.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Merge pull request #101 from paragonie/v3.x-sc2\n\n[v3.x] Update CI configuration, dependencies","shortMessageHtmlLink":"Merge pull request #101 from paragonie/v3.x-sc2"}},{"before":"2689ae5e3edc49d8efe234563951348c8a5d6e59","after":"ffc160e0e7fbb9075d17e365a3dcc035c9d44d0e","ref":"refs/heads/v3.x-sc2","pushedAt":"2024-04-19T23:19:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"crc32 for PHP < 7.4 apparently","shortMessageHtmlLink":"crc32 for PHP < 7.4 apparently"}},{"before":"0e6aafd27f22cee050a6348317c201e36295aa13","after":"2689ae5e3edc49d8efe234563951348c8a5d6e59","ref":"refs/heads/v3.x-sc2","pushedAt":"2024-04-19T23:17:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Only support sodium_compat v1 from ciphersweet v3","shortMessageHtmlLink":"Only support sodium_compat v1 from ciphersweet v3"}},{"before":"7a4e26acf54a33c255708c9499fcc5e384e56a80","after":"0e6aafd27f22cee050a6348317c201e36295aa13","ref":"refs/heads/v3.x-sc2","pushedAt":"2024-04-19T23:16:37.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Remove return type","shortMessageHtmlLink":"Remove return type"}},{"before":"ce477c0981f97c0f32a65c7604904e5204496e10","after":"7a4e26acf54a33c255708c9499fcc5e384e56a80","ref":"refs/heads/v3.x-sc2","pushedAt":"2024-04-19T23:14:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Don't use phpunit tool","shortMessageHtmlLink":"Don't use phpunit tool"}},{"before":"5c8036a841cc173c027b72dea58f33ee84d3e3ab","after":"ce477c0981f97c0f32a65c7604904e5204496e10","ref":"refs/heads/v3.x-sc2","pushedAt":"2024-04-19T23:13:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"We don't need 11","shortMessageHtmlLink":"We don't need 11"}},{"before":null,"after":"5c8036a841cc173c027b72dea58f33ee84d3e3ab","ref":"refs/heads/v3.x-sc2","pushedAt":"2024-04-19T23:11:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Update CI configuration, dependencies","shortMessageHtmlLink":"Update CI configuration, dependencies"}},{"before":"85d8da9e2a5bb2b2914b7c4b7f67346f8997d178","after":null,"ref":"refs/heads/ci-updates","pushedAt":"2024-04-19T23:09:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"}},{"before":"e71eb0ba70b681085d742ddc0eb80fdbd00a7327","after":"e7e7193d4bc449efaeb73c1c00711e5980ba73d3","ref":"refs/heads/master","pushedAt":"2024-04-19T23:09:02.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Merge pull request #100 from paragonie/ci-updates\n\nUpdate CI configuration","shortMessageHtmlLink":"Merge pull request #100 from paragonie/ci-updates"}},{"before":"cac0404ae61f0be85a332b43c464a7c3832ec420","after":"85d8da9e2a5bb2b2914b7c4b7f67346f8997d178","ref":"refs/heads/ci-updates","pushedAt":"2024-04-19T23:08:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Update CI configuration","shortMessageHtmlLink":"Update CI configuration"}},{"before":null,"after":"cac0404ae61f0be85a332b43c464a7c3832ec420","ref":"refs/heads/ci-updates","pushedAt":"2024-04-19T23:07:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Update CI configuration","shortMessageHtmlLink":"Update CI configuration"}},{"before":"ca9e09b81ed807f654fcea8b9c69218e9a4446ad","after":"e71eb0ba70b681085d742ddc0eb80fdbd00a7327","ref":"refs/heads/master","pushedAt":"2024-04-19T23:05:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Suppress this","shortMessageHtmlLink":"Suppress this"}},{"before":"b3689655a8726fd156d0eb31fdb4f0592a30d123","after":"ca9e09b81ed807f654fcea8b9c69218e9a4446ad","ref":"refs/heads/master","pushedAt":"2024-04-19T23:00:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Support sodium_compat v2\n\nSee https://paragonie.com/blog/2024/04/release-sodium-compat-v2-and-future-our-polyfill-libraries","shortMessageHtmlLink":"Support sodium_compat v2"}},{"before":"575dda1f56eba8565cc03017158e7d935abc87d5","after":"b3689655a8726fd156d0eb31fdb4f0592a30d123","ref":"refs/heads/master","pushedAt":"2023-10-28T10:16:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"More helpful exception message on NULL values.\n\nIf you do not declare a field optional, it generally will not accept NULL as a value on encrypt. Boolean is the exception to this rule (for backwards compat).\n\nHowever, non-optional fields (even booleans) must have a ciphertext on the decrypt path.\n\n```\nEncrypt:\n TYPE_BOOLEAN + (null) -> ciphertext\n TYPE_OPTIONAL_BOOLEAN + (null) -> ciphertext\n\nDecrypt:\n TYPE_BOOLEAN + (null) -> TypeError\n TYPE_OPTIONAL_BOOLEAN + (null) -> null\n```\n\nBooleans are the weird ones, though.\n\n```\nEncrypt:\n TYPE_TEXT + (null) -> TypeError\n TYPE_OPTIONAL_TEXT + (null) -> null\n\nDecrypt:\n TYPE_TEXT + (null) -> TypeError\n TYPE_OPTIONAL_BOOLEAN + (null) -> null\n```\n\nEvery other type doesn't tolerate null implicitly. This behavior is because of a very early design decision with boolean types.","shortMessageHtmlLink":"More helpful exception message on NULL values."}},{"before":"305c7ad280ff60cea2690e2b8b4ab2150ee617e9","after":"575dda1f56eba8565cc03017158e7d935abc87d5","ref":"refs/heads/master","pushedAt":"2023-07-28T19:36:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Update license year","shortMessageHtmlLink":"Update license year"}},{"before":"ec3b5fe9650abb0184b40191b7650a8de7a2cfec","after":null,"ref":"refs/heads/json-plus","pushedAt":"2023-07-28T19:33:22.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"}},{"before":"92aac4c0407a3d6c0d1c6e6565ba42882db1ae29","after":"305c7ad280ff60cea2690e2b8b4ab2150ee617e9","ref":"refs/heads/master","pushedAt":"2023-07-28T19:33:19.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Merge pull request #88 from paragonie/json-plus\n\nSupport json field map templating","shortMessageHtmlLink":"Merge pull request #88 from paragonie/json-plus"}},{"before":"fe218d905ba17c20074263cedd8a81eabf361f6c","after":null,"ref":"refs/heads/support-old-null-acceptance","pushedAt":"2023-07-28T19:32:34.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"}},{"before":"d3a6f43d0e8139665a464322dd7a524c383eabef","after":"92aac4c0407a3d6c0d1c6e6565ba42882db1ae29","ref":"refs/heads/master","pushedAt":"2023-07-28T19:32:31.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Merge pull request #92 from paragonie/support-old-null-acceptance\n\nExplicit support for optional field types","shortMessageHtmlLink":"Merge pull request #92 from paragonie/support-old-null-acceptance"}},{"before":"b98f7198b6266efc90f9fa7a8a7c19ef92fc6ba9","after":"fe218d905ba17c20074263cedd8a81eabf361f6c","ref":"refs/heads/support-old-null-acceptance","pushedAt":"2023-07-28T19:31:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Use imports instead of global namespace operator","shortMessageHtmlLink":"Use imports instead of global namespace operator"}},{"before":null,"after":"b98f7198b6266efc90f9fa7a8a7c19ef92fc6ba9","ref":"refs/heads/support-old-null-acceptance","pushedAt":"2023-07-28T19:28:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Explicit support for optional field types\n\nYou can now define optional fields. These do not encrypt when NULL is provided as a value. Instead, they become an unencrypted NULL.\n\nEncryptedRow:\n - foo, OptionalText\n - bar, OptionalText\n\nPlaintext: ['foo' => 'abc', 'bar' => null]\nCiphertext: ['foo' => /* encrypted */, 'bar' => null]\n\nThese are called \"optional\" types to disambiguate with NULL support. This matters because Boolean fields always supported NULL under-the-hood.\n\n## Types Mapping with Optional\n\n- Boolean:\n - (true) -> (ciphertext)\n - (false) -> (ciphertext)\n - (null) -> (ciphertext)\n- Integer:\n - (int) -> (ciphertext)\n - (null) -> TypeError\n- Float:\n - (float) -> (ciphertext)\n - (null) -> TypeError\n- JSON:\n - (json) -> (ciphertext)\n - (null) -> TypeError\n- Text:\n - (string) -> (ciphertext)\n - (null) -> TypeError\n- OptionalBoolean:\n - (true) -> (ciphertext)\n - (false) -> (ciphertext)\n - (null) -> (null)\n- OptionalInteger:\n - (int) -> (ciphertext)\n - (null) -> (null)\n- OptionalFloat:\n - (float) -> (ciphertext)\n - (null) -> (null)\n- OptionalJSON:\n - (json) -> (ciphertext)\n - (null) -> (null)\n- OptionalText:\n - (string) -> (ciphertext)\n - (null) -> (null)","shortMessageHtmlLink":"Explicit support for optional field types"}},{"before":null,"after":"ec3b5fe9650abb0184b40191b7650a8de7a2cfec","ref":"refs/heads/json-plus","pushedAt":"2023-05-08T18:46:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Support json field map templating\n\nTo create a field definition dynamically, you can add subfields to an arbitrary depth at any time.\n\nSee the new unit test for more details.","shortMessageHtmlLink":"Support json field map templating"}},{"before":"198a301451f5d8b04b50551936123ae84e90dc5b","after":"d3a6f43d0e8139665a464322dd7a524c383eabef","ref":"refs/heads/master","pushedAt":"2023-05-08T08:35:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Prevent implementation errors with multi-tenant key providers\n\nThe intent of the injectTenantMetadata() method is to return either the original encrypted row -OR- with additional fields. If a user returns fewer fields, that's very likely an error condition that needs to be caught.\n\nThis check is added to ensure, by default, these failures are caught and no data is lost. It can, however, be turned off.","shortMessageHtmlLink":"Prevent implementation errors with multi-tenant key providers"}},{"before":"59ee2e09362624f1e75024b4e634695091b3510a","after":"198a301451f5d8b04b50551936123ae84e90dc5b","ref":"refs/heads/master","pushedAt":"2023-04-30T01:17:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Use sodium_compat 1.20+","shortMessageHtmlLink":"Use sodium_compat 1.20+"}},{"before":"22d05f9b5ba179e889d6ee5c8414127d1a2bcbd7","after":null,"ref":"refs/heads/extension-keys","pushedAt":"2023-04-26T20:34:30.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"}},{"before":"ccb2e1d36652bb0a2471c80a747626b9502f376f","after":"59ee2e09362624f1e75024b4e634695091b3510a","ref":"refs/heads/master","pushedAt":"2023-04-26T20:34:25.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Merge pull request #86 from paragonie/extension-keys\n\nFeature: Extension Keys","shortMessageHtmlLink":"Merge pull request #86 from paragonie/extension-keys"}},{"before":null,"after":"22d05f9b5ba179e889d6ee5c8414127d1a2bcbd7","ref":"refs/heads/extension-keys","pushedAt":"2023-04-26T20:33:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"Feature: Extension Keys\n\nYou can now derive an extension-specific key from CipherSweet. This will be useful in deriving subkeys for different advanced features that the community wants to build atop CipherSweet.","shortMessageHtmlLink":"Feature: Extension Keys"}},{"before":"601d202f8cd5f09acbfa6195e144c145130b9adb","after":"ccb2e1d36652bb0a2471c80a747626b9502f376f","ref":"refs/heads/master","pushedAt":"2023-03-31T18:07:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paragonie-security","name":"P.I.E. Security Team","path":"/paragonie-security","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15914520?s=80&v=4"},"commit":{"message":"New: FastCompoundIndex, FastBlindIndex\n\nToo many users have tripped over the conservative defaults for\nblind indexing. To alleviate this, we are introducing two new\nclasses in the public API:\n\n1. `FastBlindIndex`\n2. `FastCompoundIndex`\n\nThis will always use a fast hash; which will be more suitable for\nall but the absolute most sensitive data.","shortMessageHtmlLink":"New: FastCompoundIndex, FastBlindIndex"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAERNLJ3gA","startCursor":null,"endCursor":null}},"title":"Activity ยท paragonie/ciphersweet"}