11 version = "2024-07-16";
13 src = fetchFromGitHub {
14 owner = "letsencrypt";
16 rev = "release-${version}";
20 git rev-parse --short=8 HEAD 2>/dev/null >$out/COMMIT
21 find $out -name .git -print0 | xargs -0 rm -rf
24 hash = "sha256-mIUT9qVBPWrL0ySORwgEH6azaQmzMCl7ha/eYRtvAg4=";
29 subPackages = [ "cmd/boulder" ];
34 "-X github.com/letsencrypt/boulder/core.BuildHost=nixbld@localhost"
38 ldflags+=" -X \"github.com/letsencrypt/boulder/core.BuildID=${version} +$(cat COMMIT)\""
39 ldflags+=" -X \"github.com/letsencrypt/boulder/core.BuildTime=$(date -u -d @0)\""
47 # Tests that fail or require additional services.
51 "TestAddBlockedKeyUnknownSource"
53 "TestAddCertificateDuplicate"
54 "TestAddCertificateRenewalBit"
55 "TestAddPreCertificateDuplicate"
56 "TestAddPrecertificate"
57 "TestAddPrecertificateIncomplete"
58 "TestAddPrecertificateKeyHash"
59 "TestAddPrecertificateNoOCSP"
62 "TestAdministrativelyRevokeCertificate"
63 "TestAuthorization500"
64 "TestAuthorizationChallengeNamespace"
65 "TestAuthzFailedRateLimitingNewOrder"
66 "TestAutoIncrementSchema"
69 "TestBlockedKeyRevokedBy"
71 "TestCTPolicyMeasurements"
73 "TestCertificateAbsent"
74 "TestCertificateKeyNotEqualAccountKey"
75 "TestCertificatesTableContainsDuplicateSerials"
76 "TestCertsPerNameRateLimitTable"
80 "TestCheckCertReturnsDNSNames"
81 "TestCheckCertReturnsDNSNames"
82 "TestCheckExactCertificateLimit"
83 "TestCheckFQDNSetRateLimitOverride"
84 "TestCheckWildcardCert"
85 "TestCheckWildcardCert"
86 "TestClientTransportCredentials"
88 "TestCountCertificatesByNamesParallel"
89 "TestCountCertificatesByNamesTimeRange"
90 "TestCountCertificatesRenewalBit"
91 "TestCountInvalidAuthorizations2"
92 "TestCountNewOrderWithReplaces"
94 "TestCountPendingAuthorizations2"
95 "TestCountRegistrationsByIP"
96 "TestCountRegistrationsByIPRange"
98 "TestDeactivateAccount"
99 "TestDeactivateAuthorization"
100 "TestDeactivateRegistration"
101 "TestDedupOnRegistration"
103 "TestDontFindRevokedCert"
104 "TestEarlyOrderRateLimiting"
106 "TestEnforceJWSAuthType"
107 "TestExactPublicSuffixCertLimit"
109 "TestFQDNSetTimestampsForWindow"
113 "TestFasterGetOrderForNames"
114 "TestFinalizeAuthorization2"
116 "TestFinalizeOrderWildcard"
117 "TestFinalizeOrderWithMixedSANAndCN"
118 "TestFinalizeSCTError"
119 "TestFindCertsAtCapacity"
120 "TestFindExpiringCertificates"
122 "TestFindIDsForHostnames"
123 "TestFindIDsWithExampleHostnames"
125 "TestFindUnrevokedNoRows"
127 "TestGETAPIChallenge"
129 "TestGenerateOCSPLongExpiredSerial"
130 "TestGenerateOCSPUnknownSerial"
131 "TestGetAndProcessCerts"
132 "TestGetAndProcessCerts"
133 "TestGetAuthorization"
134 "TestGetAuthorization2NoRows"
135 "TestGetAuthorizations2"
137 "TestGetCertificateHEADHasCorrectBodyLength"
138 "TestGetCertificateNew"
139 "TestGetCertificateServerError"
140 "TestGetCertsEmptyResults"
141 "TestGetCertsEmptyResults"
143 "TestGetChallengeUpRel"
144 "TestGetMaxExpiration"
146 "TestGetOrderExpired"
147 "TestGetOrderForNames"
148 "TestGetPendingAuthorization2"
149 "TestGetRevokedCerts"
150 "TestGetSerialMetadata"
151 "TestGetSerialsByAccount"
152 "TestGetSerialsByKey"
154 "TestGetValidAuthorizations2"
155 "TestGetValidOrderAuthorizations2"
156 "TestHTTPDialTimeout"
159 "TestHeaderBoulderRequester"
163 "TestIncidentSerialModel"
164 "TestIncidentsForSerial"
168 "TestInvokeRevokerHasNoExtantCerts"
169 "TestIssueCertificateAuditLog"
170 "TestIssueCertificateCAACheckLog"
171 "TestIssueCertificateInnerErrs"
172 "TestIssueCertificateInnerWithProfile"
173 "TestIssueCertificateOuter"
175 "TestKeyRolloverMismatchedJWSURLs"
176 "TestLeaseOldestCRLShard"
177 "TestLeaseSpecificCRLShard"
178 "TestLifetimeOfACert"
179 "TestLimiter_CheckWithLimitOverrides"
180 "TestLimiter_DefaultLimits"
181 "TestLimiter_InitializationViaCheckAndSpend"
182 "TestLimiter_RefundAndReset"
188 "TestNewAccountWhenAccountHasBeenDeactivated"
189 "TestNewAccountWhenGetRegByKeyFails"
190 "TestNewAccountWhenGetRegByKeyNotFound"
191 "TestNewECDSAAccount"
193 "TestNewLookupWithAllFailingSRV"
194 "TestNewLookupWithOneFailingSRV"
196 "TestNewOrderAuthzReuseSafety"
197 "TestNewOrderCheckFailedAuthorizationsFirst"
199 "TestNewOrderFailedAuthzRateLimitingExempt"
200 "TestNewOrderMaxNames"
201 "TestNewOrderRateLimiting"
202 "TestNewOrderRateLimitingExempt"
203 "TestNewOrderReplacesSerialCarriesThroughToSA"
205 "TestNewOrderReuseInvalidAuthz"
206 "TestNewOrderWildcard"
207 "TestNewRegistration"
208 "TestNewRegistrationBadKey"
209 "TestNewRegistrationContactsPresent"
210 "TestNewRegistrationNoFieldOverwrite"
211 "TestNewRegistrationRateLimit"
212 "TestNewRegistrationSAFailure"
213 "TestNoContactCertIsNotRenewed"
214 "TestNoContactCertIsRenewed"
215 "TestNoSuchRegistrationErrors"
218 "TestOrderMatchesReplacement"
219 "TestOrderToOrderJSONV2Authorizations"
220 "TestOrderWithOrderModelv1"
222 "TestPanicStackTrace"
223 "TestParseJWSRequest"
224 "TestPendingAuthorizationsUnlimited"
225 "TestPerformValidationAlreadyValid"
226 "TestPerformValidationBadChallengeType"
227 "TestPerformValidationExpired"
228 "TestPerformValidationSuccess"
229 "TestPerformValidationVAError"
230 "TestPrepAuthzForDisplay"
231 "TestPreresolvedDialerTimeout"
233 "TestProcessCertsConnectError"
234 "TestProcessCertsParallel"
235 "TestRecheckCAADates"
236 "TestRecheckCAAEmpty"
238 "TestRecheckCAAInternalServerError"
239 "TestRecheckCAASuccess"
240 "TestRedisSource_BatchSetAndGet"
241 "TestRedisSource_Ping"
242 "TestRegistrationsPerIPOverrideUsage"
243 "TestRehydrateHostPort"
244 "TestRelativeDirectory"
245 "TestReplicationLagRetries"
246 "TestResolveContacts"
247 "TestRevokeCertByApplicant_Controller"
248 "TestRevokeCertByApplicant_Subscriber"
249 "TestRevokeCertByKey"
250 "TestRevokeCertificate"
253 "TestSPKIHashFromPrivateKey"
254 "TestSPKIHashesFromFile"
255 "TestSelectRegistration"
256 "TestSelectUncheckedRows"
257 "TestSendEarliestCertInfo"
258 "TestSerialsForIncident"
259 "TestSerialsFromFile"
260 "TestSerialsFromPrivateKey"
262 "TestSetOrderProcessing"
268 "TestTLSALPN01DialTimeout"
272 "TestUpdateChallengeFinalizedAuthz"
273 "TestUpdateChallengeRAError"
274 "TestUpdateChallengesDeleteUnused"
275 "TestUpdateMissingAuthorization"
276 "TestUpdateNowWithAllFailingSRV"
277 "TestUpdateNowWithOneFailingSRV"
278 "TestUpdateRegistrationSame"
279 "TestUpdateRevokedCertificate"
282 "TestValidNonce_NoMatchingBackendFound"
283 "TestValidPOSTAsGETForAccount"
284 "TestValidPOSTForAccount"
285 "TestValidPOSTForAccountSwappedKey"
286 "TestValidPOSTRequest"
288 "TestValidSelfAuthenticatedPOST"
289 "TestValidSelfAuthenticatedPOSTGoodKeyErrors"
290 "TestValidateContacts"
296 "-skip ${lib.strings.concatStringsSep "|" disabledTests}"
300 for i in $($out/bin/boulder --list); do
301 ln -s $out/bin/boulder $out/bin/$i
305 passthru.tests.version = testers.testVersion {
311 homepage = "https://github.com/letsencrypt/boulder";
312 description = "ACME-based certificate authority, written in Go";
314 This is an implementation of an ACME-based CA. The ACME protocol allows
315 the CA to automatically verify that an applicant for a certificate
316 actually controls an identifier, and allows domain holders to issue and
317 revoke certificates for their domains. Boulder is the software that runs
320 license = licenses.mpl20;
321 mainProgram = "boulder";
322 maintainers = with maintainers; [ azahi ];