<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lacme/client, branch debian/0.8.2-1</title>
<subtitle>Small ACME client written with process isolation and minimal privileges in mind</subtitle>
<id>http://git.guilhem.org/lacme/atom?h=debian%2F0.8.2-1</id>
<link rel='self' href='http://git.guilhem.org/lacme/atom?h=debian%2F0.8.2-1'/>
<link rel='alternate' type='text/html' href='http://git.guilhem.org/lacme/'/>
<updated>2023-04-25T18:06:22Z</updated>
<entry>
<title>Prepare new release v0.8.2.</title>
<updated>2023-04-25T18:06:22Z</updated>
<author>
<name>Guilhem Moulin</name>
<email>guilhem@fripost.org</email>
</author>
<published>2023-04-25T18:06:22Z</published>
<link rel='alternate' type='text/html' href='http://git.guilhem.org/lacme/commit/?id=c80a2530eb014b34a314e078fec2589bc7969e33'/>
<id>urn:sha1:c80a2530eb014b34a314e078fec2589bc7969e33</id>
<content type='text'>
</content>
</entry>
<entry>
<title>client: Handle "ready" → "processing" → "valid" status change during newOrder.</title>
<updated>2023-04-25T09:11:03Z</updated>
<author>
<name>Guilhem Moulin</name>
<email>guilhem@fripost.org</email>
</author>
<published>2023-04-25T08:51:36Z</published>
<link rel='alternate' type='text/html' href='http://git.guilhem.org/lacme/commit/?id=53238c70f7a12e233a6ca83cf2b50168e5b9592e'/>
<id>urn:sha1:53238c70f7a12e233a6ca83cf2b50168e5b9592e</id>
<content type='text'>
Instead of just "ready" → "valid", which may be what we observe when the
server is fast enough, but according to RFC 8555 sec. 7.1.6 the state
actually transitions via "processing" state and we need to account for
that.

It appears Let's Encrypt staging environment now has different timing
conditions and lacme is unable to request certificates due to this
issue.

Thanks to Alexander Borkowski for the report!
</content>
</entry>
<entry>
<title>Prepare new release v0.8.1.</title>
<updated>2023-01-25T02:23:51Z</updated>
<author>
<name>Guilhem Moulin</name>
<email>guilhem@fripost.org</email>
</author>
<published>2023-01-25T02:23:51Z</published>
<link rel='alternate' type='text/html' href='http://git.guilhem.org/lacme/commit/?id=b3af3526b293f396da02a6276ea86ca17dcd2d03'/>
<id>urn:sha1:b3af3526b293f396da02a6276ea86ca17dcd2d03</id>
<content type='text'>
</content>
</entry>
<entry>
<title>lacme: pass a temporary JSON file with the client configuration to the internal client.</title>
<updated>2021-02-25T09:30:22Z</updated>
<author>
<name>Guilhem Moulin</name>
<email>guilhem@fripost.org</email>
</author>
<published>2021-02-25T00:41:59Z</published>
<link rel='alternate' type='text/html' href='http://git.guilhem.org/lacme/commit/?id=9a8f705eddd18ccc9a24fe0e7efe6b5a87b2be09'/>
<id>urn:sha1:9a8f705eddd18ccc9a24fe0e7efe6b5a87b2be09</id>
<content type='text'>
So it doesn't have to parse the INI file again.  Also, while lacme.conf
is world-readable by default, one might restrict permissions and add
private information in there, not realizing that everything, including
comments, will be readable by the client.
</content>
</entry>
<entry>
<title>lacme: Default mode for certificate(-chain) creation is 0644 minus umask restrictions.</title>
<updated>2021-02-24T20:32:01Z</updated>
<author>
<name>Guilhem Moulin</name>
<email>guilhem@fripost.org</email>
</author>
<published>2021-02-24T20:01:12Z</published>
<link rel='alternate' type='text/html' href='http://git.guilhem.org/lacme/commit/?id=c612a7ff44995f4f9c39fa0fb68470d90c88decf'/>
<id>urn:sha1:c612a7ff44995f4f9c39fa0fb68470d90c88decf</id>
<content type='text'>
Also, always spawn the client with umask 0022 so a starting lacme(8)
with a restrictive umask doesn't impede serving challenge response
files.
</content>
</entry>
<entry>
<title>Consolidate error messages.</title>
<updated>2021-02-22T23:20:32Z</updated>
<author>
<name>Guilhem Moulin</name>
<email>guilhem@fripost.org</email>
</author>
<published>2021-02-22T23:20:32Z</published>
<link rel='alternate' type='text/html' href='http://git.guilhem.org/lacme/commit/?id=af5e3d794fc2f83f6cc3b5ddff386dad5463707d'/>
<id>urn:sha1:af5e3d794fc2f83f6cc3b5ddff386dad5463707d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Prepare new release v0.8.0.</title>
<updated>2021-02-22T02:19:57Z</updated>
<author>
<name>Guilhem Moulin</name>
<email>guilhem@fripost.org</email>
</author>
<published>2021-02-22T02:19:57Z</published>
<link rel='alternate' type='text/html' href='http://git.guilhem.org/lacme/commit/?id=3eba02ef820a393bd5781be9f8fcda1611ae7c3d'/>
<id>urn:sha1:3eba02ef820a393bd5781be9f8fcda1611ae7c3d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>client: Print Terms of Service URL for 'account' command.</title>
<updated>2021-02-22T00:05:06Z</updated>
<author>
<name>Guilhem Moulin</name>
<email>guilhem@fripost.org</email>
</author>
<published>2021-02-22T00:04:58Z</published>
<link rel='alternate' type='text/html' href='http://git.guilhem.org/lacme/commit/?id=ed85b6a6740028ce9ce821975a534f696eabd8ed'/>
<id>urn:sha1:ed85b6a6740028ce9ce821975a534f696eabd8ed</id>
<content type='text'>
</content>
</entry>
<entry>
<title>lacme-accountd(1): new setting 'keyid'.</title>
<updated>2021-02-21T23:14:51Z</updated>
<author>
<name>Guilhem Moulin</name>
<email>guilhem@fripost.org</email>
</author>
<published>2021-02-21T17:49:14Z</published>
<link rel='alternate' type='text/html' href='http://git.guilhem.org/lacme/commit/?id=9898b1877ce2973bbc336921969bd7f16d3698fa'/>
<id>urn:sha1:9898b1877ce2973bbc336921969bd7f16d3698fa</id>
<content type='text'>
This saves a round trip and provides a safeguard against malicious
clients.
</content>
</entry>
<entry>
<title>accountd: Pass JWA and JWK thumbprint via extended greeting data.</title>
<updated>2021-02-21T18:41:40Z</updated>
<author>
<name>Guilhem Moulin</name>
<email>guilhem@fripost.org</email>
</author>
<published>2021-02-21T13:27:50Z</published>
<link rel='alternate' type='text/html' href='http://git.guilhem.org/lacme/commit/?id=ba6addf54cef0b1536dc87c42a41b4dc207ac884'/>
<id>urn:sha1:ba6addf54cef0b1536dc87c42a41b4dc207ac884</id>
<content type='text'>
Passing the JWA to the ACME client is required if we want to support
account keys other than RSA.  As of 0.7 both lacme-accountd(1) and
lacme(8) hardcode “RS256” (SHA256withRSA per RFC 7518 sec. A.1).

Passing the JWK thumbprint is handy as it gives more flexibility if RFC
8555 sec. 8.1 were to be updated with another digest algorithm (it's
currently hardcoded to SHA-256).  A single lacme-account(1) instance
might be used to sign requests from many clients, and it's easier to
upgrade a single ‘lacme-accountd’ than many ‘lacme’.  Moreover, in some
restricted environments lacme-accountd might hide the JWK from the
client to prevent ‘newAccount’ requests (such as contact updates);
passing its thumbprint is enough for ‘newOrder’ requests.
</content>
</entry>
</feed>
