001/*
002 * The contents of this file are subject to the terms of the Common Development and
003 * Distribution License (the License). You may not use this file except in compliance with the
004 * License.
005 *
006 * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
007 * specific language governing permission and limitations under the License.
008 *
009 * When distributing Covered Software, include this CDDL Header Notice in each file and include
010 * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
011 * Header, with the fields enclosed by brackets [] replaced by your own identifying
012 * information: "Portions Copyright [year] [name of copyright owner]".
013 *
014 * Copyright 2006-2008 Sun Microsystems, Inc.
015 * Portions copyright 2012 ForgeRock AS.
016 */
017
018package org.opends.server.extensions;
019
020
021
022import java.nio.channels.ByteChannel;
023import java.security.cert.Certificate;
024
025
026
027/**
028 * This interface can be used to define connection security providers.
029 */
030public interface ConnectionSecurityProvider
031{
032
033  /**
034   * Return a certificate chain array.
035   *
036   * @return A certificate chain array.
037   */
038  Certificate[] getClientCertificateChain();
039
040
041
042  /**
043   * Return the name of a provider.
044   *
045   * @return String representing the name of a provider.
046   */
047  String getName();
048
049
050
051  /**
052   * Return a Security Strength Factor.
053   *
054   * @return Integer representing the current SSF of a provider.
055   */
056  int getSSF();
057
058
059
060  /**
061   * Return <CODE>true</CODE> if a provider is secure.
062   *
063   * @return <CODE>true</CODE> if a provider is secure.
064   */
065  boolean isSecure();
066
067
068
069  /**
070   * Returns the security provider's byte channel.
071   *
072   * @return The security provider's byte channel.
073   */
074  ByteChannel getChannel();
075}