{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":97625830,"defaultBranch":"master","name":"Monocypher","ownerLogin":"LoupVaillant","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-07-18T17:28:53.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/27145845?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1693735599.0","currentOid":""},"activityList":{"items":[{"before":"43917fbae280ccb26cbc0a1e24376b622db57365","after":"84dc30665e6a49a523f99c26a2b41f16ba9e1aa1","ref":"refs/heads/master","pushedAt":"2024-05-22T20:41:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Doc: use pointers instead of arrays when size is provided","shortMessageHtmlLink":"Doc: use pointers instead of arrays when size is provided"}},{"before":"b02114d1668067ad753501b7020d88b18c74cc4c","after":"43917fbae280ccb26cbc0a1e24376b622db57365","ref":"refs/heads/master","pushedAt":"2024-02-25T22:24:08.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Doc: fixed missing 'void'","shortMessageHtmlLink":"Doc: fixed missing 'void'"}},{"before":"a6cf08be3ba521cee72ec86645925e4c212f22c7","after":"b02114d1668067ad753501b7020d88b18c74cc4c","ref":"refs/heads/master","pushedAt":"2024-01-15T22:03:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Fix missing pkg-config flags","shortMessageHtmlLink":"Fix missing pkg-config flags"}},{"before":"1d2f5cc20a59cf5b291a8a4f1cf1fa645b26c887","after":"a6cf08be3ba521cee72ec86645925e4c212f22c7","ref":"refs/heads/master","pushedAt":"2024-01-15T22:01:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Fix missing pkg-config flags","shortMessageHtmlLink":"Fix missing pkg-config flags"}},{"before":"be3594602496f95b4f9958da3560a682127c6276","after":"1d2f5cc20a59cf5b291a8a4f1cf1fa645b26c887","ref":"refs/heads/master","pushedAt":"2024-01-15T21:57:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Fix missing pkg-config flags","shortMessageHtmlLink":"Fix missing pkg-config flags"}},{"before":"5e3c845645b2d2842370d78e6b365f0f8337cf55","after":"be3594602496f95b4f9958da3560a682127c6276","ref":"refs/heads/master","pushedAt":"2024-01-15T16:25:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Remove duplicate test vector for HKDF","shortMessageHtmlLink":"Remove duplicate test vector for HKDF"}},{"before":"636cc057bc8866213997eef23a190f9ff9ab1fad","after":"5e3c845645b2d2842370d78e6b365f0f8337cf55","ref":"refs/heads/master","pushedAt":"2024-01-05T15:44:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Fix speed benchmark bug","shortMessageHtmlLink":"Fix speed benchmark bug"}},{"before":"983e136bbd3ce6cfb2062324bc64366379827e0b","after":"636cc057bc8866213997eef23a190f9ff9ab1fad","ref":"refs/heads/master","pushedAt":"2023-10-22T22:16:00.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Just changing the types on those two resolved everything, and tests\npass!\n\n--- a/src/monocypher.c\n+++ b/src/monocypher.c\n-u64 lane =\n+u32 lane =\n...\n-u64 ref = (window_start + z) % lane_size;\n+u32 ref = (window_start + z) % lane_size;\n-u32 index = (u32)(lane * lane_size) + (u32)ref;\n+u32 index = lane * lane_size + ref;","shortMessageHtmlLink":"Just changing the types on those two resolved everything, and tests"}},{"before":"9a2c0d4478f4e0a94b59b478bfc6e058a0f20adf","after":"983e136bbd3ce6cfb2062324bc64366379827e0b","ref":"refs/heads/master","pushedAt":"2023-10-19T20:13:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Update crypto_argon2.3monocypher - fixes errors and warnings that can lead to incorrect solution\n\nCloses: #264 \r\n\r\nFixes these issues, by allowing password array to autosize, and then making sure to drop the \\0 character when determining the size of the string, and also reorders the crypto_argon2_inputs field designators to remove a warning.\r\n\r\n```\r\nmain.cpp:83:24: error: initializer-string for char array is too long, array size is 14 but initializer has size 15 (including the null terminating character)\r\nuint8_t password[14] = \"Okay Password!\";\r\n ^~~~~~~~~~~~~~~~\r\nmain.cpp:87:5: warning: ISO C++ requires field designators to be specified in declaration order; field 'pass_size' will be initialized after field 'salt' [-Wreorder-init-list]\r\n .salt = salt, /* Salt for the password */\r\n ^~~~~~~~~~~~~~~~~\r\n```","shortMessageHtmlLink":"Update crypto_argon2.3monocypher - fixes errors and warnings that can…"}},{"before":"7c8313724d4de8136f44ef197d65bd114058fa83","after":"9a2c0d4478f4e0a94b59b478bfc6e058a0f20adf","ref":"refs/heads/master","pushedAt":"2023-10-17T04:38:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Use NULL instead of 0 for null pointers\n\nTurns out the standard guarantees that NULL is defined in `stddef.h`.\nContrary to what I used to believe, using it doesn't induce any further\ndependency. `0` is also guaranteed by the standard to work, but it's\nless explicit and in some cases more error prone.","shortMessageHtmlLink":"Use NULL instead of 0 for null pointers"}},{"before":"3a9557427201e78026048547988bbb582fe64f4a","after":"7c8313724d4de8136f44ef197d65bd114058fa83","ref":"refs/heads/master","pushedAt":"2023-09-09T14:57:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Work around TIS-CI bug on x96_16","shortMessageHtmlLink":"Work around TIS-CI bug on x96_16"}},{"before":"0d85f98c9d9b0227e42cf795cb527dff372b40a4","after":"3a9557427201e78026048547988bbb582fe64f4a","ref":"refs/heads/master","pushedAt":"2023-09-05T21:06:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Fix $(PREFIX) in makefiles\n\nApparently the convention for the $(PREFIX) variable is to include the\nleading '/'. Leaving it out and adding it manually confuses some\npackage systems, and force package maintainers to patch it when their\nown $(PREFIX) already starts with '/'.","shortMessageHtmlLink":"Fix $(PREFIX) in makefiles"}},{"before":"03fbc677d9912c49b7e363d69523cd4269eead6a","after":"0d85f98c9d9b0227e42cf795cb527dff372b40a4","ref":"refs/heads/master","pushedAt":"2023-09-02T14:32:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Leaner TIS-CI tests\n\nTIS-CI tests take forever. It's annoying and cost them compute power\nfor little benefit. A quick assesment of Monocypher reveals that the\nonly things we really care about are endianness and main word size.\nThings like the sign of `char`, `sizeof(int)`, or `long double` are\nmostly (or entirely) irrelevant.\n\nSo, all platforms supported by TIS-CI, only 5 are relevant:\n\n- 16-bits little endian (I chose x86_16)\n- 32-bits little endian (I chose x86_32)\n- 32-bits big endian (I chose sparc_32)\n- 32-bits little endian (I chose rv64ifdq)\n- 32-bits big endian (I chose mips_64)\n\nAll the others are redundant.\n\n---\n\nAlso added the missing v_x25519 test.","shortMessageHtmlLink":"Leaner TIS-CI tests"}},{"before":"91092311edf223a145a62e78f1e7dde0120702fa","after":"03fbc677d9912c49b7e363d69523cd4269eead6a","ref":"refs/heads/master","pushedAt":"2023-08-29T09:15:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Fix /bin/env vs /usr/bin/env vs nothing\n\nThere's no such thing as /bin/env, though I let that slip by because my\ndistro redirects /bin to /usr/bin.\n\nI believe \"#! /bin/sh\" is even more standard that \"#! /usr/bin/env sh\",\nand that's what I used everywhere anyway.","shortMessageHtmlLink":"Fix /bin/env vs /usr/bin/env vs nothing"}},{"before":"388d6e2c1d687f805292ba68cb9cb12ccc79617a","after":"91092311edf223a145a62e78f1e7dde0120702fa","ref":"refs/heads/master","pushedAt":"2023-08-28T21:40:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Fix stupid Github CI\n\nStupid Github CI make doesn't take environment variables into account.\nWe have to override them explicitly, hence the ridiculous CC=\"$CC\".","shortMessageHtmlLink":"Fix stupid Github CI"}},{"before":"dd1e45ecbdc76baeec7cc75af9942599a8d78422","after":"388d6e2c1d687f805292ba68cb9cb12ccc79617a","ref":"refs/heads/master","pushedAt":"2023-08-28T21:34:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Fix stupid Github CI\n\nStupid Github CI make doesn't take environment variables into account.\nWe have to override them explicitly, hence the ridiculous CC=\"$CC\".","shortMessageHtmlLink":"Fix stupid Github CI"}},{"before":"34c3ba82d2e5b534fc073eb39b92687113fcc073","after":"dd1e45ecbdc76baeec7cc75af9942599a8d78422","ref":"refs/heads/master","pushedAt":"2023-08-28T21:29:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Dummy commit","shortMessageHtmlLink":"Dummy commit"}},{"before":"b66694cc73d31d3d62b0f1a5f15b470c67117144","after":"34c3ba82d2e5b534fc073eb39b92687113fcc073","ref":"refs/heads/master","pushedAt":"2023-08-28T21:23:33.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Fix CHANGELOG typo","shortMessageHtmlLink":"Fix CHANGELOG typo"}},{"before":"911bdf72329facae23292cdabb3abdb7616828f9","after":"b66694cc73d31d3d62b0f1a5f15b470c67117144","ref":"refs/heads/master","pushedAt":"2023-08-24T17:15:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Run valgrind without march=native\n\nValgrind doesn't always support all relevant instructions and crashes\non some platforms, most notably github CI.","shortMessageHtmlLink":"Run valgrind without march=native"}},{"before":"d9cc61686c07a9c4359bbb68964e7a87b2cc9a4f","after":"911bdf72329facae23292cdabb3abdb7616828f9","ref":"refs/heads/master","pushedAt":"2023-08-24T17:12:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Run valgrind without march=native\n\nValgrind doesn't always support all relevant instructions and crashes\non some platforms, most notably github CI.","shortMessageHtmlLink":"Run valgrind without march=native"}},{"before":"8da575c7aa9e76bd8ba13456fd5af95a364a4d41","after":"d9cc61686c07a9c4359bbb68964e7a87b2cc9a4f","ref":"refs/heads/master","pushedAt":"2023-08-24T17:02:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Run valgrind without march=native\n\nValgrind doesn't always support all relevant instructions and crashes\non some platforms, most notably github CI.","shortMessageHtmlLink":"Run valgrind without march=native"}},{"before":"ffb41a79f8b71d94e5dd584555041226faccb59d","after":"8da575c7aa9e76bd8ba13456fd5af95a364a4d41","ref":"refs/heads/master","pushedAt":"2023-08-24T16:58:02.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Simplify github CI","shortMessageHtmlLink":"Simplify github CI"}},{"before":"5448fa4a1b5cd04c93c6d846c93d5ccc7ca97214","after":"ffb41a79f8b71d94e5dd584555041226faccb59d","ref":"refs/heads/master","pushedAt":"2023-08-24T16:30:31.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Update CHANGELOG","shortMessageHtmlLink":"Update CHANGELOG"}},{"before":"50b1e0f274a1493ac3aac3965fad66e544187666","after":"5448fa4a1b5cd04c93c6d846c93d5ccc7ca97214","ref":"refs/heads/master","pushedAt":"2023-07-27T15:25:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Fix various documentation typos & oversights\n\nWith the help of a (now updated) `doc_extract_examples.sh` script.\nNote: We may want to integrate this script in the test suite, if we end\nup writing more documentation.\n\nFix #260","shortMessageHtmlLink":"Fix various documentation typos & oversights"}},{"before":"3f9f5470fde35f603939215644673a223a55379e","after":"50b1e0f274a1493ac3aac3965fad66e544187666","ref":"refs/heads/master","pushedAt":"2023-07-27T10:40:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Fix Argon2 multiple lanes bug\n\nArgon2 failed to conform to the reference implementation when used with\nmultiple lanes, rendering it useless for this compatibility use case.\nThe error came from the way we select the reference set:\n\n- On the first slice of the first pass, only the current lane is valid.\n- When selecting other lanes, only fully completed segments are valid.\n- The previous block of *all* lanes must be excluded.\n\nFixes #263","shortMessageHtmlLink":"Fix Argon2 multiple lanes bug"}},{"before":"014f45d9fe54271c8e08006eea83fa97b9d55d32","after":"3f9f5470fde35f603939215644673a223a55379e","ref":"refs/heads/master","pushedAt":"2023-07-26T15:46:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Fix Argon2 allocation (test & doc)","shortMessageHtmlLink":"Fix Argon2 allocation (test & doc)"}},{"before":"f034515e60c7e59a4a77a0f0a11faa6181a7b2a9","after":"014f45d9fe54271c8e08006eea83fa97b9d55d32","ref":"refs/heads/master","pushedAt":"2023-07-03T21:51:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Faster Argon2 inner loop\n\nCompilers aren't magical. They need help to generate the best code.\nHere we want to compute the following expression:\n\n mask = 0xffffffff;\n 2 * (a & mask) * (b & mask)\n\nThe most efficient way to do this looks like this:\n\n u64 al = (u32)a; // Truncate\n u64 bl = (u32)b; // Truncate\n u64 x = al * bl; // 32->64 bits multiply\n u64 2x = x << 1; // shift\n return 2x;\n\nMy compiler doesn't pick up on this, and perform a slower alternative\ninstead. Either the multiply by two uses an actual multiply instead of a\nshift, or the shift is done first, forcing a more expensive 64->64\nmultiply. More naive compilers may even do both.\n\nWhatever the cause, I got 5% faster code on GCC 11.3.","shortMessageHtmlLink":"Faster Argon2 inner loop"}},{"before":"c63c7c5defcef63c4db469d474c71268922be424","after":"f034515e60c7e59a4a77a0f0a11faa6181a7b2a9","ref":"refs/heads/master","pushedAt":"2023-05-01T11:50:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Remove 'volatile' from TIS tests","shortMessageHtmlLink":"Remove 'volatile' from TIS tests"}},{"before":"a6fe62b52db3681c3317b8208d08ceffa6e905ce","after":"c63c7c5defcef63c4db469d474c71268922be424","ref":"refs/heads/master","pushedAt":"2023-05-01T11:31:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Remove from TIS tests","shortMessageHtmlLink":"Remove from TIS tests"}},{"before":"5a8e2069bfc30153c431b1093cfa70184317b27a","after":"a6fe62b52db3681c3317b8208d08ceffa6e905ce","ref":"refs/heads/master","pushedAt":"2023-05-01T11:16:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LoupVaillant","name":"Loup Vaillant","path":"/LoupVaillant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27145845?s=80&v=4"},"commit":{"message":"Add explicit crypto_wipe() test","shortMessageHtmlLink":"Add explicit crypto_wipe() test"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEUVvLHAA","startCursor":null,"endCursor":null}},"title":"Activity · LoupVaillant/Monocypher"}