/** * Copyright (c) Istituto Nazionale di Fisica Nucleare, 2006-2014. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.italiangrid.voms.store; import java.security.cert.X509Certificate; import java.util.List; /** * The VOMS LSC information. * * @author Andrea Ceccanti * */ public interface LSCInfo { /** * Sets the name of the file from where this LSC info was parsed from. * * @param filename * the name of the file from where this LSC info was parsed from. */ public void setFilename(String filename); /** * Returns the name of file from where this LSC info was parsed from. * * @return the name of the file from where this LSC info was parsed from. */ public String getFilename(); /** * Returns the VO name this LSC info applies to. * * @return the VO name this LSC info applies to */ public String getVOName(); /** * Returns the host name of the VOMS AA this LSC info applies to. * * @return the host name of the VOMS AA this LSC info applies to */ public String getHostname(); /** * Returns the certificate chain description of the VOMS AA for the given VO * and hostname. * * The certificate chain description is a list of X.500 distinguished names * encoded as strings according to the OpenSSL slash-separated format, as in: * <code>/C=IT/O=INFN/CN=INFN CA</code> * * The first element in the description is the leaf certificate, while the * last is the CA certificate. * * @return the certificate chain description of the VOMS AA for the given VO * and hostname. */ public List<String> getCertificateChainDescription(); /** * Checks if the certificate chain description maintained in the LSC * information matches the certificate chain passed as argument. * * @param certChain * the certificate chain to be checked * @return <code>true</code> if the description matches, <code>false</code> * otherwise */ public boolean matches(X509Certificate[] certChain); }