ref: 7405e0d77d08d29a7fc68a85eea13035386f5408
src/main/java/net/lulli/certsigner/util/CSRManager.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
/* * This file is part of cert-signer * Copyright (c) 2024 Paolo Lulli. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, version 3. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package net.lulli.certsigner.util; import net.lulli.certsigner.Settings; import org.bouncycastle.jce.PKCS10CertificationRequest; import org.bouncycastle.util.io.pem.PemObject; import org.bouncycastle.util.io.pem.PemWriter; import javax.security.auth.x500.X500Principal; import java.io.StringWriter; import java.security.PrivateKey; import java.security.PublicKey; import java.util.Objects; @Deprecated //Future versions should use org.bouncycastle.pkcs.PKCS10CertificationRequest public class CSRManager { private final PKCS10CertificationRequest csr; private final X500Principal x500Principal; private final PrivateKey privateKey; private final PublicKey publicKey; private CSRManager(X500Principal x500Principal, PrivateKey privateKey, PublicKey publicKey) throws Exception { this.x500Principal = x500Principal; this.privateKey = privateKey; this.publicKey = publicKey; this.csr = new PKCS10CertificationRequest( Settings.SIGNATURE_ALGORITHM, //"SHA1withRSA", x500Principal, publicKey, null, privateKey ); } public static CSRManager with(String subject, PrivateKey privateKey, PublicKey publicKey) throws Exception { Objects.requireNonNull(subject); Objects.requireNonNull(privateKey); Objects.requireNonNull(publicKey); var principal = new X500Principal(subject); return new CSRManager(principal, privateKey, publicKey); } public String pem() { try { var pemObject = new PemObject("CERTIFICATE REQUEST", csr.getEncoded()); var str = new StringWriter(); var pemWriter = new PemWriter(str); pemWriter.writeObject(pemObject); pemWriter.close(); str.close(); return str.toString(); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } public PKCS10CertificationRequest certificateSigningRequest() { return this.csr; } } |