]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/dbObjects/Certificate.java
add: javadoc to "Certificate"'s constructor
[gigi.git] / src / org / cacert / gigi / dbObjects / Certificate.java
index b0c85e96b9f691b13b6bdd68e5b678b5b95264da..275aa20e127db2eaec23738e45d8815101c90e74 100644 (file)
@@ -17,15 +17,17 @@ import java.util.List;
 import java.util.Map.Entry;
 
 import org.cacert.gigi.GigiApiException;
+import org.cacert.gigi.database.DBEnum;
 import org.cacert.gigi.database.GigiPreparedStatement;
 import org.cacert.gigi.database.GigiResultSet;
 import org.cacert.gigi.output.template.Outputable;
 import org.cacert.gigi.output.template.TranslateCommand;
+import org.cacert.gigi.pages.account.certs.CertificateRequest;
 import org.cacert.gigi.util.KeyStorage;
 
 public class Certificate implements IdCachable {
 
-    public enum SANType {
+    public enum SANType implements DBEnum {
         EMAIL("email"), DNS("DNS");
 
         private final String opensslName;
@@ -37,6 +39,11 @@ public class Certificate implements IdCachable {
         public String getOpensslName() {
             return opensslName;
         }
+
+        @Override
+        public String getDBName() {
+            return opensslName;
+        }
     }
 
     public static class SubjectAlternateName implements Comparable<SubjectAlternateName> {
@@ -133,6 +140,33 @@ public class Certificate implements IdCachable {
 
     private CACertificate ca;
 
+    /**
+     * Creates a new Certificate. WARNING: this is an internal API. Creating
+     * certificates for users must be done using the {@link CertificateRequest}
+     * -API.
+     * 
+     * @param owner
+     *            the owner for whom the certificate should be created.
+     * @param actor
+     *            the acting user that creates the certificate
+     * @param dn
+     *            the distinguished name of the subject of this certificate (as
+     *            Map using OpenSSL-Style keys)
+     * @param md
+     *            the {@link Digest} to sign the certificate with
+     * @param csr
+     *            the CSR/SPKAC-Request containing the public key in question
+     * @param csrType
+     *            the type of the csr parameter
+     * @param profile
+     *            the profile under which this certificate is to be issued
+     * @param sans
+     *            additional subject alternative names
+     * @throws GigiApiException
+     *             in case the request is malformed or internal errors occur
+     * @throws IOException
+     *             when the request cannot be written.
+     */
     public Certificate(CertificateOwner owner, User actor, HashMap<String, String> dn, Digest md, String csr, CSRType csrType, CertificateProfile profile, SubjectAlternateName... sans) throws GigiApiException, IOException {
         if ( !profile.canBeIssuedBy(owner, actor)) {
             throw new GigiApiException("You are not allowed to issue these certificates.");
@@ -478,7 +512,7 @@ public class Certificate implements IdCachable {
     public static Certificate[] findBySANPattern(String request, SANType type) {
         try (GigiPreparedStatement prep = new GigiPreparedStatement("SELECT `certId` FROM `subjectAlternativeNames` WHERE `contents` LIKE ? and `type`=?::`SANType` GROUP BY `certId` LIMIT 100", true)) {
             prep.setString(1, request);
-            prep.setString(2, type.getOpensslName());
+            prep.setEnum(2, type);
             return fetchCertsToArray(prep);
         }
     }