def perform(self, request): secrets = Secrets.from_request(request) serial = b64decode(self.serial).encode('hex') with RawInput(self.csr) as inFile: with RawInput(serial) as sFile: with secrets.cert as certFile: with secrets.key as keyFile: with invoke('x509', inFile, 'req', days=365, CAserial=sFile, CA=certFile, CAkey=keyFile) as (out, err): self.cert = (out.read().replace('\r', '\n') .replace('\n\n', '\n')) return self.cert
def revoke(self, request): secrets = Secrets.from_request(request) revoked = RevokeDB.from_request(request) with RawInput(self.cert) as toRevoke: with secrets.cert as certFile: with secrets.key as keyFile: with revoked.config as configFile: invoke('ca', None, revoke=toRevoke, keyfile=keyFile, cert=certFile, config=configFile, md='default') self.cert = 'REVOKED' invoke('ca', None, 'gencrl', keyfile=keyFile, cert=certFile, out=revoked.crlFile, config=configFile, md='default', crldays=30) return 'Certificate revoked'