1 /** 2 * Licensed to the University Corporation for Advanced Internet 3 * Development, Inc. (UCAID) under one or more contributor license 4 * agreements. See the NOTICE file distributed with this work for 5 * additional information regarding copyright ownership. 6 * 7 * UCAID licenses this file to you under the Apache License, 8 * Version 2.0 (the "License"); you may not use this file except 9 * in compliance with the License. You may obtain a copy of the 10 * License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 17 * either express or implied. See the License for the specific 18 * language governing permissions and limitations under the License. 19 */ 20 21 /** 22 * @file xmltooling/security/OpenSSLSecurityHelper.h 23 * 24 * A helper class for working with OpenSSL keys. 25 */ 26 27 #if !defined(__xmltooling_opensslsechelper_h__) && !defined(XMLTOOLING_NO_XMLSEC) && defined (XSEC_HAVE_OPENSSL) 28 #define __xmltooling_opensslsechelper_h__ 29 30 #include <xmltooling/base.h> 31 #include <openssl/evp.h> 32 #include <openssl/rsa.h> 33 #include <openssl/evp.h> 34 35 namespace xmltooling { 36 /** 37 * A helper class for working with OpenSSL keys. 38 */ 39 class XMLTOOL_API OpenSSLSecurityHelper 40 { 41 public: 42 /** 43 * Compares two keys for equality. 44 * 45 * @param key1 first key to compare 46 * @param key2 second key to compare 47 * @return true iff the keys match 48 */ 49 static bool matchesPublic(const RSA* rsa, const XSECCryptoKey& key); 50 static bool matchesPrivate(const RSA* rsa, const XSECCryptoKey& key); 51 static bool matchesPublic(const DSA* dsa1, const XSECCryptoKey& key); 52 static bool matchesPrivate(const DSA* dsa, const XSECCryptoKey& key); 53 #ifdef XSEC_OPENSSL_HAVE_EC 54 static bool matchesPublic(const EC_KEY* ec, const XSECCryptoKey& key); 55 static bool matchesPrivate(const EC_KEY* ec, const XSECCryptoKey& key); 56 #endif 57 }; 58 }; 59 60 #endif /* __xmltooling_sechelper_h__ */ 61