@@ -158,6 +158,11 @@ type ACMECertificateResponse* = object
158158 rawCertificate* : string
159159 certificateExpiry* : DateTime
160160
161+ type ACMECertificate * = object
162+ rawCertificate* : string
163+ certificateExpiry* : DateTime
164+ certKeyPair* : KeyPair
165+
161166when defined (libp2p_autotls_support):
162167 import options, sequtils, strutils, jwt, bearssl/ pem
163168
@@ -448,11 +453,16 @@ when defined(libp2p_autotls_support):
448453 return await self.checkChallengeCompleted (chalURL, key, kid, retries = retries)
449454
450455 proc requestFinalize * (
451- self: ACMEApi , domain: Domain , finalize: Uri , key: KeyPair , kid: Kid
456+ self: ACMEApi ,
457+ domain: Domain ,
458+ finalize: Uri ,
459+ certKeyPair: KeyPair ,
460+ key: KeyPair ,
461+ kid: Kid ,
452462 ): Future [ACMEFinalizeResponse ] {.async : (raises: [ACMEError , CancelledError ]).} =
453463 handleError (" requestFinalize" ):
454464 let payload = await self.createSignedAcmeRequest (
455- finalize, %* {" csr" : createCSR (domain)}, key, kid = Opt .some (kid)
465+ finalize, %* {" csr" : createCSR (domain, certKeyPair )}, key, kid = Opt .some (kid)
456466 )
457467 let acmeResponse = await self.post (finalize, payload)
458468 # server responds with updated order response
@@ -484,11 +494,13 @@ when defined(libp2p_autotls_support):
484494 domain: Domain ,
485495 finalize: Uri ,
486496 order: Uri ,
497+ certKeyPair: KeyPair ,
487498 key: KeyPair ,
488499 kid: Kid ,
489500 retries: int = DefaultFinalizeRetries ,
490501 ): Future [bool ] {.async : (raises: [ACMEError , CancelledError ]).} =
491- let finalizeResponse = await self.requestFinalize (domain, finalize, key, kid)
502+ let finalizeResponse =
503+ await self.requestFinalize (domain, finalize, certKeyPair, key, kid)
492504 # keep checking order until cert is valid (done)
493505 return await self.checkCertFinalized (order, key, kid, retries = retries)
494506
0 commit comments