123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- //
- // CipherFactory.h
- //
- // Library: Crypto
- // Package: Cipher
- // Module: CipherFactory
- //
- // Definition of the CipherFactory class.
- //
- // Copyright (c) 2008, Applied Informatics Software Engineering GmbH.
- // and Contributors.
- //
- // SPDX-License-Identifier: BSL-1.0
- //
- #ifndef Crypto_CipherFactory_INCLUDED
- #define Crypto_CipherFactory_INCLUDED
- #include "Poco/Crypto/Crypto.h"
- namespace Poco {
- namespace Crypto {
- class Cipher;
- class CipherKey;
- class RSAKey;
- class Crypto_API CipherFactory
- /// A factory for Cipher objects. See the Cipher class for examples on how to
- /// use the CipherFactory.
- {
- public:
- CipherFactory();
- /// Creates a new CipherFactory object.
- virtual ~CipherFactory();
- /// Destroys the CipherFactory.
- Cipher* createCipher(const CipherKey& key);
- /// Creates a Cipher object for the given Cipher name. Valid cipher
- /// names depend on the OpenSSL version the library is linked with;
- /// see the output of
- ///
- /// openssl enc --help
- ///
- /// for a list of supported block and stream ciphers.
- ///
- /// Common examples are:
- ///
- /// * AES: "aes-128", "aes-256"
- /// * DES: "des", "des3"
- /// * Blowfish: "bf"
- Cipher* createCipher(const RSAKey& key, RSAPaddingMode paddingMode = RSA_PADDING_PKCS1);
- /// Creates a RSACipher using the given RSA key and padding mode
- /// for public key encryption/private key decryption.
-
- static CipherFactory& defaultFactory();
- /// Returns the default CipherFactory.
- private:
- CipherFactory(const CipherFactory&);
- CipherFactory& operator = (const CipherFactory&);
- };
- } } // namespace Poco::Crypto
- #endif // Crypto_CipherFactory_INCLUDED
|