{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":467182937,"defaultBranch":"main","name":"galileo-osnma","ownerLogin":"daniestevez","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-03-07T16:57:47.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/15093841?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1706269066.0","currentOid":""},"activityList":{"items":[{"before":"633f0b6ede837daa9f92d64ee134f2f7c1e96785","after":"3160676d45fc8147c8633f9dee1ace093d93ec71","ref":"refs/heads/main","pushedAt":"2024-01-26T11:33:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"update OSNMA test vectors\n\nThe GSC has updated the OSNMA test vectors to fix the problem with\nthe public key for Merkle Tree 3 (the key distributed in the previous\ntest vector didn't belong to this Merkle Tree). The URL of the test\nvectors has changed, and the version of the Receiver Guidelines has\nbeen bumped.","shortMessageHtmlLink":"update OSNMA test vectors"}},{"before":"db639a165d949aa56908c6918d02b99fc4c26062","after":"633f0b6ede837daa9f92d64ee134f2f7c1e96785","ref":"refs/heads/main","pushedAt":"2024-01-26T11:32:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"update OSNMA test vectors\n\nThe GSC has updated the OSNMA test vectors to fix the problem with\nthe public key for Merkle Tree 3 (the key distributed in the previous\ntest vector didn't belong to this Merkle Tree). The URL of the test\nvectors has changed, and the version of the Receiver Guidelines has\nbeen bumped.","shortMessageHtmlLink":"update OSNMA test vectors"}},{"before":"de4efa82fceff8d765cb4bccb0ca618a9400b0cd","after":"db639a165d949aa56908c6918d02b99fc4c26062","ref":"refs/heads/main","pushedAt":"2024-01-26T11:21:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"bump to v0.8.0\n\nAlso update dependencies of all crates.","shortMessageHtmlLink":"bump to v0.8.0"}},{"before":"de4efa82fceff8d765cb4bccb0ca618a9400b0cd","after":null,"ref":"refs/heads/work","pushedAt":"2024-01-26T11:15:58.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"}},{"before":"e5ec365afb604d2a541661361fb426ba1526d515","after":"de4efa82fceff8d765cb4bccb0ca618a9400b0cd","ref":"refs/heads/main","pushedAt":"2024-01-26T11:15:55.000Z","pushType":"push","commitsCount":25,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"ci: fix typo","shortMessageHtmlLink":"ci: fix typo"}},{"before":"53e25cccef6709dbc181a1e53117ded202e02f14","after":"de4efa82fceff8d765cb4bccb0ca618a9400b0cd","ref":"refs/heads/work","pushedAt":"2024-01-26T11:15:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"ci: fix typo","shortMessageHtmlLink":"ci: fix typo"}},{"before":"e6bd27c58990dddcc602ddac6f34fabc065dfbdb","after":"53e25cccef6709dbc181a1e53117ded202e02f14","ref":"refs/heads/work","pushedAt":"2024-01-26T11:08:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"update README","shortMessageHtmlLink":"update README"}},{"before":"7c749c385eae4298eb7eeeab0b565bb34cc3301f","after":"e6bd27c58990dddcc602ddac6f34fabc065dfbdb","ref":"refs/heads/work","pushedAt":"2024-01-26T11:06:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"update README","shortMessageHtmlLink":"update README"}},{"before":"ba6f10f6825489f9a482d37f4a4a481d7bc4d5a3","after":"7c749c385eae4298eb7eeeab0b565bb34cc3301f","ref":"refs/heads/work","pushedAt":"2024-01-26T11:04:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"update README","shortMessageHtmlLink":"update README"}},{"before":"eba6d9531f6b473b6542122292bd4fa82ba13d4a","after":"ba6f10f6825489f9a482d37f4a4a481d7bc4d5a3","ref":"refs/heads/work","pushedAt":"2024-01-26T10:58:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"update README","shortMessageHtmlLink":"update README"}},{"before":"49a7bb8182a381197201522a12fa1df1e0539349","after":"eba6d9531f6b473b6542122292bd4fa82ba13d4a","ref":"refs/heads/work","pushedAt":"2024-01-26T10:54:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"update README","shortMessageHtmlLink":"update README"}},{"before":"c5b07ef395eb608fd2cc2a33f8a9819e8e8823c5","after":"49a7bb8182a381197201522a12fa1df1e0539349","ref":"refs/heads/work","pushedAt":"2024-01-26T10:51:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"update README","shortMessageHtmlLink":"update README"}},{"before":"4fdc0fe5b3659540951ea7fa0a5fa595d5d1ae72","after":"c5b07ef395eb608fd2cc2a33f8a9819e8e8823c5","ref":"refs/heads/work","pushedAt":"2024-01-26T10:25:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"add descriptions to run_test_vectors.sh\n\nThis adds a description of what should happen when each test vector\nis run.","shortMessageHtmlLink":"add descriptions to run_test_vectors.sh"}},{"before":"2ed76808e2f006ccc4e4efff2e260a2efd1ae5e2","after":"4fdc0fe5b3659540951ea7fa0a5fa595d5d1ae72","ref":"refs/heads/work","pushedAt":"2024-01-26T09:57:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"refactor how don't use status is handled\n\nWe follow strictly what the ICD says: \"navigation data shall not be\nauthenticated with the provided OSNMA information\". With this change,\nthe only thing that is affected by the don't use status is whether\nauthentication bits are added to the navigation data as a consequence\nof a successful tag verification. The receiver carries out all the\nother operations regardless of the don't use status.","shortMessageHtmlLink":"refactor how don't use status is handled"}},{"before":"aa1f27776c4fdbb0c0f467123c91edbb77e4f12d","after":"2ed76808e2f006ccc4e4efff2e260a2efd1ae5e2","ref":"refs/heads/work","pushedAt":"2024-01-26T09:45:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"osnma: refactor handling of chain in force in key storage\n\nThis uses a different approach to keeping track of the key in force\nin the key storage. The new approach fixes failures in the OSNMA\ntest vector Chain Revocation Step 2.\n\nInstead of keeping track of which is the key of the chain in force,\nwe keep track of what is the CID of the chain in force. This simplifies\nkeeping track of the start of applicability, as we can simply set\nit whenever the CID changes value. It also handles the case in\nChain Revocation Step 2, when the DSM-PKR is transmitting a KROOT\nfor a chain that will be in force. In that case, the receiver never\ngets a KROOT from the first chain, and so it would never set the\nstart of applicability for the key of the new chain correctly.","shortMessageHtmlLink":"osnma: refactor handling of chain in force in key storage"}},{"before":"66dd8b8ed8dbc202ba5ee71fa23197b8a55db75e","after":"aa1f27776c4fdbb0c0f467123c91edbb77e4f12d","ref":"refs/heads/work","pushedAt":"2024-01-25T11:37:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"use NMA status of MACK subframe to validate tags\n\nAccording to the ICD, the NMA status used in the tag validation\nshould be the NMA status of the subframe in which the MACK containing\nthe tag was transmitted, not the NMA status of the subframe in which\nthe TESLA key used to validate the tag was transmitted. This distinction\nis important in the subframes when the NMA status has just changed.\n\nThe software was using the TESLA key NMA status, since it is what was\nat hand in the moment when tag verification happens. To implement what\nthe ICD says, the MackStorage is extended to store also the NMA status\ntogether with each MACK. This is slightly wasteful, because the NMA\nstatus is supposed to be the same for all the satellites in the same\nsubframe, but it simplifies the implementation and also avoids problems\nhaving to do with inconsistent data.","shortMessageHtmlLink":"use NMA status of MACK subframe to validate tags"}},{"before":"581ace8cb640d7ea142745c50f2dbff490df6149","after":"66dd8b8ed8dbc202ba5ee71fa23197b8a55db75e","ref":"refs/heads/work","pushedAt":"2024-01-25T10:43:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"potentially fetch key from previous chain for Slow MAC\n\nWhen validating the MACSEQ to process Slow MAC tags with the current\nTESLA key, the MACSEQ needs to be checked against an older key. If\nthere has been a chain renewal, this older key can belong to the\nprevious chain. This adds some logic to the key storage to keep track\nof when the chain for a key starts being applicable. This is used\nto fetch the key from the other chain if the key GST needed for the\nSlow MAC MACSEQ verification is before the start of applicability\nof the current chain.\n\nThe algorithm included here is not completely foolproof, and for\ninstance doesn't handle cases when the current chain is changing\nbetween 3 different chain IDs, but it is good enough for the typical\ncase of chain renewal in which there is only a single chain ID\nchange in a long period of time.","shortMessageHtmlLink":"potentially fetch key from previous chain for Slow MAC"}},{"before":"84d4ffeb28a12c56398934477ccd6a0d327d8d7f","after":"581ace8cb640d7ea142745c50f2dbff490df6149","ref":"refs/heads/work","pushedAt":"2024-01-25T10:37:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"potentially fetch key from previous chain for Slow MAC\n\nWhen validating the MACSEQ to process Slow MAC tags with the current\nTESLA key, the MACSEQ needs to be checked against an older key. If\nthere has been a chain renewal, this older key can belong to the\nprevious chain. This adds some logic to the key storage to keep track\nof when the chain for a key starts being applicable. This is used\nto fetch the key from the other chain if the key GST needed for the\nSlow MAC MACSEQ verification is before the start of applicability\nof the current chain.\n\nThe algorithm included here is not completely foolproof, and for\ninstance doesn't handle cases when the current chain is changing\nbetween 3 different chain IDs, but it is good enough for the typical\ncase of chain renewal in which there is only a single chain ID\nchange in a long period of time.","shortMessageHtmlLink":"potentially fetch key from previous chain for Slow MAC"}},{"before":"40668bec3f7311eb300777497c00b17b95c6f5c9","after":"84d4ffeb28a12c56398934477ccd6a0d327d8d7f","ref":"refs/heads/work","pushedAt":"2024-01-25T10:29:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"potentially fetch key from previous chain for Slow MAC\n\nWhen validating the MACSEQ to process Slow MAC tags with the current\nTESLA key, the MACSEQ needs to be checked against an older key. If\nthere has been a chain renewal, this older key can belong to the\nprevious chain. This adds some logic to the key storage to keep track\nof when the chain for a key starts being applicable. This is used\nto fetch the key from the other chain if the key GST needed for the\nSlow MAC MACSEQ verification is before the start of applicability\nof the current chain.\n\nThe algorithm included here is not completely foolproof, and for\ninstance doesn't handle cases when the current chain is changing\nbetween 3 different chain IDs, but it is good enough for the typical\ncase of chain renewal in which there is only a single chain ID\nchange in a long period of time.","shortMessageHtmlLink":"potentially fetch key from previous chain for Slow MAC"}},{"before":"dd785e6ccf3fbd20f1a24ca66fb7720ad674bde4","after":"40668bec3f7311eb300777497c00b17b95c6f5c9","ref":"refs/heads/work","pushedAt":"2024-01-25T10:21:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"potentially fetch key from previous chain for Slow MAC\n\nWhen validating the MACSEQ to process Slow MAC tags with the current\nTESLA key, the MACSEQ needs to be checked against an older key. If\nthere has been a chain renewal, this older key can belong to the\nprevious chain. This adds some logic to the key storage to keep track\nof when the chain for a key starts being applicable. This is used\nto fetch the key from the other chain if the key GST needed for the\nSlow MAC MACSEQ verification is before the start of applicability\nof the current chain.\n\nThe algorithm included here is not completely foolproof, and for\ninstance doesn't handle cases when the current chain is changing\nbetween 3 different chain IDs, but it is good enough for the typical\ncase of chain renewal in which there is only a single chain ID\nchange in a long period of time.","shortMessageHtmlLink":"potentially fetch key from previous chain for Slow MAC"}},{"before":"19a515a7bdb34fd53fac8d433593a51994058b34","after":"dd785e6ccf3fbd20f1a24ca66fb7720ad674bde4","ref":"refs/heads/work","pushedAt":"2024-01-25T09:24:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"implement dummy tag validation\n\nThis implements validation of tags with COP = 0.","shortMessageHtmlLink":"implement dummy tag validation"}},{"before":"7719fb15f6116364749cbeb75f8d83ad1c6d0ec1","after":"19a515a7bdb34fd53fac8d433593a51994058b34","ref":"refs/heads/work","pushedAt":"2024-01-25T08:57:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"implement dummy tag validation\n\nThis implements validation of tags with COP = 0.","shortMessageHtmlLink":"implement dummy tag validation"}},{"before":"a0457ece39f0e659091e13fe9a73f76447cb0caf","after":"7719fb15f6116364749cbeb75f8d83ad1c6d0ec1","ref":"refs/heads/work","pushedAt":"2024-01-24T10:34:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"implement dummy tag validation\n\nThis implements validation of tags with COP = 0.","shortMessageHtmlLink":"implement dummy tag validation"}},{"before":"d7c3f733e8132e3e017f899681736b6f78c82d81","after":"a0457ece39f0e659091e13fe9a73f76447cb0caf","ref":"refs/heads/work","pushedAt":"2024-01-24T09:44:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"add validation of Alert Message against Merkle tree","shortMessageHtmlLink":"add validation of Alert Message against Merkle tree"}},{"before":"a77ff1546af9f5f88a2ac15855d1534f847bd58b","after":"d7c3f733e8132e3e017f899681736b6f78c82d81","ref":"refs/heads/work","pushedAt":"2024-01-24T09:16:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"galmon: do not error if EOF is reached\n\nDo not consider an error the situation where an EOF is reached\nin a Galmon reader just when the header of a packet is being read.\nThis allows applications to terminate gracefully when the input\nis a file.","shortMessageHtmlLink":"galmon: do not error if EOF is reached"}},{"before":"e9dea5f17db53c508d49bafb24c39a99e3ab5713","after":"a77ff1546af9f5f88a2ac15855d1534f847bd58b","ref":"refs/heads/work","pushedAt":"2024-01-24T08:57:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"ci: fix test-vectors workflow\n\nNow the ecdsa Python package needs to be installed.","shortMessageHtmlLink":"ci: fix test-vectors workflow"}},{"before":"1c989c3d52a02ddc6c6ce6c6c4f8049f8c081a0c","after":"e9dea5f17db53c508d49bafb24c39a99e3ab5713","ref":"refs/heads/work","pushedAt":"2024-01-24T08:56:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"ci: add pycodestile workflow","shortMessageHtmlLink":"ci: add pycodestile workflow"}},{"before":"5fd2d75040cac723f23fa787f9e5cf9a4efc0ab2","after":"1c989c3d52a02ddc6c6ce6c6c4f8049f8c081a0c","ref":"refs/heads/work","pushedAt":"2024-01-24T08:53:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"run_test_vectors.sh: extract Merkle tree 3 pubkey from Merkle tree\n\nThe Public Keys given for Merkle 3 in the test vectors are wrong\n(they don't correspond to the Merkle tree or to the test vectors\nwhere they are used). The pubkey in the Merkle tree XML file is\ncorrect, so we extract the key from there to run the test vectors\nthat need this key.","shortMessageHtmlLink":"run_test_vectors.sh: extract Merkle tree 3 pubkey from Merkle tree"}},{"before":"f00c07cf0b3b5e6631b033a270f8b2d555fa8152","after":"5fd2d75040cac723f23fa787f9e5cf9a4efc0ab2","ref":"refs/heads/work","pushedAt":"2024-01-23T10:40:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"ci: add workflow to run tests vectors","shortMessageHtmlLink":"ci: add workflow to run tests vectors"}},{"before":"a0ef5d029c04347419631a47fb8ce0d7376e3c7e","after":"f00c07cf0b3b5e6631b033a270f8b2d555fa8152","ref":"refs/heads/work","pushedAt":"2024-01-23T10:35:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"daniestevez","name":"Daniel Estévez","path":"/daniestevez","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15093841?s=80&v=4"},"commit":{"message":"ci: add workflow to run tests vectors","shortMessageHtmlLink":"ci: add workflow to run tests vectors"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAD6dCF6wA","startCursor":null,"endCursor":null}},"title":"Activity · daniestevez/galileo-osnma"}