001 /** 002 * 003 * Licensed to the Apache Software Foundation (ASF) under one or more 004 * contributor license agreements. See the NOTICE file distributed with 005 * this work for additional information regarding copyright ownership. 006 * The ASF licenses this file to You under the Apache License, Version 2.0 007 * (the "License"); you may not use this file except in compliance with 008 * the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018 package org.apache.geronimo.management.geronimo; 019 020 import java.math.BigInteger; 021 import java.security.cert.Certificate; 022 023 /** 024 * Management interface for dealing with a specific Certificate Store 025 * 026 * @version $Rev: 706640 $ $Date: 2008-10-21 14:44:05 +0000 (Tue, 21 Oct 2008) $ 027 */ 028 public interface CertificateStore { 029 /** 030 * This method stores a given certificate. 031 * 032 * @param cert Certificate to be stored 033 */ 034 public void storeCertificate(Certificate cert) throws CertificateStoreException; 035 036 /** 037 * This method returns a Certificate with a given serial number (if it exists in the store) 038 * 039 * @param sNo Serial Number of the certificate to be retrieved. 040 */ 041 public Certificate getCertificate(BigInteger sNo) throws CertificateStoreException; 042 043 /** 044 * This method returns base64 encoded certificate with a given serial number (if it exists in the store) 045 * 046 * @param sNo Serial Number of the certificate to be retrieved. 047 */ 048 public String getCertificateBase64Text(BigInteger sNo) throws CertificateStoreException; 049 050 /** 051 * This method returns the highest certificate serial number in the store. 052 */ 053 public BigInteger getHighestSerialNumber() throws CertificateStoreException; 054 055 /** 056 * This method returns the 'highest certificate serial number plus ONE' and increments the highest 057 * serial number in the store. 058 */ 059 public BigInteger getNextSerialNumber() throws CertificateStoreException; 060 061 /** 062 * This method checks if a certificate with a given serial number exists in the store. 063 * 064 * @param sNo Serial number of the certificate to be checked 065 */ 066 public boolean containsCertificate(BigInteger sNo); 067 068 /** 069 * This method stores the CA's certificate in the store. 070 * @param cert CA's certificate 071 */ 072 public boolean storeCACertificate(Certificate cert) throws CertificateStoreException; 073 074 /** 075 * This method returns the CA's certificate stored in the store. 076 */ 077 public Certificate getCACertificate() throws CertificateStoreException; 078 079 /** 080 * This method stores the challenge phrase against the specified certificate serial number 081 * @param sNo Serial number of the certificate 082 * @param challenge Challenge phrase 083 */ 084 public boolean setCertificateChallenge(BigInteger sNo, String challenge) throws CertificateStoreException; 085 }