00001 /* 00002 * Copyright 2002-2004 The Apache Software Foundation. 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * imitations under the License. 00015 */ 00016 00017 /* 00018 * XSEC 00019 * 00020 * OpenSSLCryptoProvider := Base class to define an OpenSSL module 00021 * 00022 * Author(s): Berin Lautenbach 00023 * 00024 * $Id: OpenSSLCryptoProvider.hpp,v 1.11 2004/02/16 11:30:02 blautenb Exp $ 00025 * 00026 */ 00027 00028 #ifndef OPENSSLCRYPTOPROVIDER_INCLUDE 00029 #define OPENSSLCRYPTOPROVIDER_INCLUDE 00030 00031 #include <xsec/framework/XSECDefs.hpp> 00032 #include <xsec/enc/XSECCryptoProvider.hpp> 00033 00034 #if defined (HAVE_OPENSSL) 00035 00048 /*\@{*/ 00049 00050 class DSIG_EXPORT OpenSSLCryptoProvider : public XSECCryptoProvider { 00051 00052 00053 public : 00054 00057 00058 OpenSSLCryptoProvider(); 00059 virtual ~OpenSSLCryptoProvider(); 00060 00062 00065 00076 virtual XSECCryptoHash * hashSHA1(); 00077 00089 virtual XSECCryptoHash * hashHMACSHA1(); 00090 00101 virtual XSECCryptoHash * hashMD5(); 00102 00119 virtual XSECCryptoHash * hashHMACMD5(); 00120 00122 00125 00136 virtual XSECCryptoBase64 * base64(); 00137 00139 00142 00152 virtual XSECCryptoKeyDSA * keyDSA(); 00153 00163 virtual XSECCryptoKeyRSA * keyRSA(); 00164 00175 virtual XSECCryptoX509 * X509(); 00176 00184 virtual bool algorithmSupported(XSECCryptoSymmetricKey::SymmetricKeyType alg); 00185 00196 virtual XSECCryptoSymmetricKey * keySymmetric(XSECCryptoSymmetricKey::SymmetricKeyType alg); 00197 00210 virtual unsigned int getRandom(unsigned char * buffer, unsigned int numOctets); 00211 00212 00214 00217 00222 virtual const XMLCh * getProviderName(); 00223 00225 00226 /*\@}*/ 00227 00228 }; 00229 00230 #endif /* HAVE_OPENSSL */ 00231 #endif /* OPENSSLCRYPTOPROVIDER_INCLUDE */