Skip to content

Commit fac2bb3

Browse files
author
ID Bot
committed
Script updating archive at 2026-06-30T04:17:55Z. [ci skip]
1 parent 35be5ee commit fac2bb3

1 file changed

Lines changed: 55 additions & 34 deletions

File tree

archive.json

Lines changed: 55 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"magic": "E!vIA5L86J2I",
3-
"timestamp": "2026-06-28T04:42:39.684853+00:00",
3+
"timestamp": "2026-06-30T04:17:52.672627+00:00",
44
"repo": "ietf-plants-wg/merkle-tree-certs",
55
"labels": [
66
{
@@ -3227,15 +3227,15 @@
32273227
"id": "I_kwDOJIBkVc78BbHY",
32283228
"title": "HTTP 503 isn't quite right for pending landmark",
32293229
"url": "https://github.com/ietf-plants-wg/merkle-tree-certs/issues/202",
3230-
"state": "OPEN",
3230+
"state": "CLOSED",
32313231
"author": "davidben",
32323232
"authorAssociation": "COLLABORATOR",
32333233
"assignees": [],
32343234
"labels": [],
32353235
"body": "Watson Ladd points out:\n\n> I'm not sure 503 is the right error code for the landmark-relative cert in ACME: a 400 series code would make more sense given that some are about resource conditions. There isn't one that fits though. 503 may complicate infrastructure monitoring as it is usually a server problem you want to worry about.\n\nhttps://mailarchive.ietf.org/arch/msg/plants/-Q5kuTg9HQUTcbkv8ybIndgqj5U/",
32363236
"createdAt": "2026-04-08T22:59:42Z",
3237-
"updatedAt": "2026-04-09T04:48:56Z",
3238-
"closedAt": null,
3237+
"updatedAt": "2026-06-29T15:58:30Z",
3238+
"closedAt": "2026-06-29T15:58:30Z",
32393239
"comments": [
32403240
{
32413241
"author": "aarongable",
@@ -3271,6 +3271,13 @@
32713271
"body": "> Whichever the status code, do you think it warrants a different header in that case? (I see ACME also has this error system. I've no idea if that's appropriate here.)\n\nAh interesting. ACME actually already uses Retry-After on 200 responses, so that bridge has already been crossed:\n\n> \"processing\": The certificate is being issued. Send a POST-as-GET request after the time given in the Retry-After header field of the response, if any.",
32723272
"createdAt": "2026-04-09T04:48:56Z",
32733273
"updatedAt": "2026-04-09T04:48:56Z"
3274+
},
3275+
{
3276+
"author": "davidben",
3277+
"authorAssociation": "COLLABORATOR",
3278+
"body": "Fixed in #257 ",
3279+
"createdAt": "2026-06-29T15:58:30Z",
3280+
"updatedAt": "2026-06-29T15:58:30Z"
32743281
}
32753282
]
32763283
},
@@ -3719,15 +3726,15 @@
37193726
"id": "I_kwDOJIBkVc8AAAABGvv-1w",
37203727
"title": "No explicit bound on issuance log size (index/tree_size)",
37213728
"url": "https://github.com/ietf-plants-wg/merkle-tree-certs/issues/260",
3722-
"state": "OPEN",
3729+
"state": "CLOSED",
37233730
"author": "Vaisman",
3724-
"authorAssociation": "NONE",
3731+
"authorAssociation": "CONTRIBUTOR",
37253732
"assignees": [],
37263733
"labels": [],
37273734
"body": "\nSection \"Issuance Logs\" describes an issuance log as an append-only sequence of entries identified by an index starting from zero, \nwith no stated upper bound. The only explicitly bounded quantity in this area is the log number itself:\n\n> \"Log numbers are numbered consecutively from 1 to at most 65535 (2^16-1).\"\n\nHowever, the certificate format depends on the log entry index and subtree boundaries fitting in 48 bits.\nSection \"Certificate Format\" defines:\n\n> \"The `serialNumber` MUST be equal to `(log_number << 48) | index`.\"\n\nand `MTCProof`'s `start` and `end` fields are typed as `uint48`. Verification reconstructs the split the same way:\n\n> \"Let `index` be the least significant 48 bits of `serial` and let `log_number` be `serial >> 48`.\"\n\nNone of this is tied to a normative bound on `index` or the log's `tree_size`. \nThere does not appear to be a statement requiring an issuance log to remain small enough for all certificate-relevant values (`index`, `start`, and `end`) to fit in `uint48`.\n\nIf a log grew beyond the range representable by the certificate fields, the certificate format would no longer have a well-defined way to represent later entry indexes in `serialNumber` or subtree boundaries in `MTCProof.start` / `MTCProof.end`. \nThis is the same kind of asymmetry that is already handled for log numbers, which are explicitly bounded at 65535; `index` / `tree_size` do not seem to have the corresponding statement.\n\n**Suggested fix:** Add an explicit requirement defining the maximum allowed issuance log tree size, chosen so that all certificate-relevant indexes and subtree boundaries fit in `uint48`.\n",
37283735
"createdAt": "2026-06-25T22:00:24Z",
3729-
"updatedAt": "2026-06-25T22:18:43Z",
3730-
"closedAt": null,
3736+
"updatedAt": "2026-06-29T17:07:59Z",
3737+
"closedAt": "2026-06-29T17:07:59Z",
37313738
"comments": [
37323739
{
37333740
"author": "davidben",
@@ -18350,24 +18357,26 @@
1835018357
"id": "PR_kwDOJIBkVc7p4f1E",
1835118358
"title": "The \"enhancement\" link relation",
1835218359
"url": "https://github.com/ietf-plants-wg/merkle-tree-certs/pull/257",
18353-
"state": "OPEN",
18360+
"state": "MERGED",
1835418361
"author": "davidben",
1835518362
"authorAssociation": "COLLABORATOR",
1835618363
"assignees": [],
1835718364
"labels": [],
1835818365
"body": "Another ACME option. Fourth time's the charm? :-)",
1835918366
"createdAt": "2026-06-24T00:00:14Z",
18360-
"updatedAt": "2026-06-24T12:41:07Z",
18367+
"updatedAt": "2026-06-29T15:58:03Z",
1836118368
"baseRepository": "ietf-plants-wg/merkle-tree-certs",
1836218369
"baseRefName": "main",
18363-
"baseRefOid": "a6b3f491b81217735674c237d72bc41bee6cffae",
18370+
"baseRefOid": "6795e4f7ead20f0adaccabfad793bd5258f4a610",
1836418371
"headRepository": "ietf-plants-wg/merkle-tree-certs",
1836518372
"headRefName": "link-rel-enhancement",
18366-
"headRefOid": "23ea09584ae5f182b162d20825bbe625b709770e",
18367-
"closedAt": null,
18368-
"mergedAt": null,
18369-
"mergedBy": null,
18370-
"mergeCommit": null,
18373+
"headRefOid": "e6cb5d4789aa511b56f4e246975c890e2610211a",
18374+
"closedAt": "2026-06-29T15:57:53Z",
18375+
"mergedAt": "2026-06-29T15:57:53Z",
18376+
"mergedBy": "davidben",
18377+
"mergeCommit": {
18378+
"oid": "957e0beb77c9c603b708af51f3668da4b4a09121"
18379+
},
1837118380
"comments": [],
1837218381
"reviews": [
1837318382
{
@@ -18410,24 +18419,26 @@
1841018419
"id": "PR_kwDOJIBkVc7qwsMI",
1841118420
"title": "Add a maxSerial field to the CA format",
1841218421
"url": "https://github.com/ietf-plants-wg/merkle-tree-certs/pull/261",
18413-
"state": "OPEN",
18422+
"state": "MERGED",
1841418423
"author": "davidben",
1841518424
"authorAssociation": "COLLABORATOR",
1841618425
"assignees": [],
1841718426
"labels": [],
1841818427
"body": "I suspect the discussion around revoking, log numbers, min/max indices, the CA format, etc., can be refactored given how scattered it has become. Ah well.\r\n\r\n(Also closes #260)",
1841918428
"createdAt": "2026-06-25T22:14:26Z",
18420-
"updatedAt": "2026-06-26T01:22:07Z",
18429+
"updatedAt": "2026-06-29T17:08:01Z",
1842118430
"baseRepository": "ietf-plants-wg/merkle-tree-certs",
1842218431
"baseRefName": "main",
18423-
"baseRefOid": "6795e4f7ead20f0adaccabfad793bd5258f4a610",
18432+
"baseRefOid": "56cc9c32452ae76b9174b80dac5ea5fd47e3c541",
1842418433
"headRepository": "ietf-plants-wg/merkle-tree-certs",
1842518434
"headRefName": "max-serial",
18426-
"headRefOid": "1548df01c5a7a00253c896d94355a27d4e8f1453",
18427-
"closedAt": null,
18428-
"mergedAt": null,
18429-
"mergedBy": null,
18430-
"mergeCommit": null,
18435+
"headRefOid": "43d1cee9e67ef2a1efaf31848a7422a59d094f38",
18436+
"closedAt": "2026-06-29T17:07:58Z",
18437+
"mergedAt": "2026-06-29T17:07:58Z",
18438+
"mergedBy": "davidben",
18439+
"mergeCommit": {
18440+
"oid": "545b71faa5ef5e729945f4f96f27964e1a7bc951"
18441+
},
1843118442
"comments": [],
1843218443
"reviews": [
1843318444
{
@@ -18457,25 +18468,35 @@
1845718468
"id": "PR_kwDOJIBkVc7rXkgq",
1845818469
"title": "demo: fix UnusedBit panic on signing error",
1845918470
"url": "https://github.com/ietf-plants-wg/merkle-tree-certs/pull/262",
18460-
"state": "OPEN",
18471+
"state": "MERGED",
1846118472
"author": "Vaisman",
18462-
"authorAssociation": "NONE",
18473+
"authorAssociation": "CONTRIBUTOR",
1846318474
"assignees": [],
1846418475
"labels": [],
18465-
"body": "Fixes a panic in `CreateCertificate` when `CertificateConfig.UnusedBit` is set and a cosigner fails to sign.\r\n\r\nThe existing condition had an operator-precedence bug:\r\n\r\n```go\r\nif sig, err := certSig.Bytes(); err == nil && len(sig) == 0 || sig[len(sig)-1]&1 != 0 {\r\n```\r\n\r\nSince `&&` binds tighter than `||`, the final `sig[len(sig)-1]` expression could still be evaluated when `certSig.Bytes()` returned an error. In that case, `sig` may be nil or empty, causing a panic instead of allowing the existing builder error to propagate through the normal `Bytes()` path.\r\n\r\nThis change only inspects the signature bytes when `certSig.Bytes()` succeeds.\r\n\r\nA regression test covers the case with `UnusedBit: true` and a `crypto.Signer` whose `Sign` method always returns an error.\r\n\r\nTested:\r\n\r\n```text\r\ngo test -run TestCreateCertificateUnusedBitCosignerError -v\r\ngo test ./... -v\r\n```\r\n",
18476+
"body": "Fixes an operator-precedence bug in CreateCertificate's UnusedBit handling.\r\n\r\n&& binds tighter than ||, so sig[len(sig)-1] could be evaluated even when certSig.Bytes() returned an error. Add parentheses so the signature bytes are only inspected when Bytes() succeeds.\r\n\r\nTested:\r\n\r\ngo test ./...\r\n",
1846618477
"createdAt": "2026-06-27T20:18:28Z",
18467-
"updatedAt": "2026-06-27T23:32:00Z",
18478+
"updatedAt": "2026-06-29T17:04:49Z",
1846818479
"baseRepository": "ietf-plants-wg/merkle-tree-certs",
1846918480
"baseRefName": "main",
1847018481
"baseRefOid": "6795e4f7ead20f0adaccabfad793bd5258f4a610",
1847118482
"headRepository": "Vaisman/merkle-tree-certs",
1847218483
"headRefName": "fix-unusedbit-panic",
18473-
"headRefOid": "87afb57edc9f9b654baa955ad4125c88667cf9be",
18474-
"closedAt": null,
18475-
"mergedAt": null,
18476-
"mergedBy": null,
18477-
"mergeCommit": null,
18478-
"comments": [],
18484+
"headRefOid": "a6888e8dfe2d790263b9d591d70385a40c9bc501",
18485+
"closedAt": "2026-06-29T17:04:49Z",
18486+
"mergedAt": "2026-06-29T17:04:49Z",
18487+
"mergedBy": "davidben",
18488+
"mergeCommit": {
18489+
"oid": "56cc9c32452ae76b9174b80dac5ea5fd47e3c541"
18490+
},
18491+
"comments": [
18492+
{
18493+
"author": "Vaisman",
18494+
"authorAssociation": "CONTRIBUTOR",
18495+
"body": "Thanks, that makes sense. Reduced this to the minimal one-line fix and dropped the regression test.",
18496+
"createdAt": "2026-06-28T05:42:28Z",
18497+
"updatedAt": "2026-06-28T05:42:28Z"
18498+
}
18499+
],
1847918500
"reviews": [
1848018501
{
1848118502
"id": "PRR_kwDOJIBkVc8AAAABEWBFog",

0 commit comments

Comments
 (0)