37 #ifndef VIRGIL_CRYPTO_PFS_VIRGIL_PFS_H 38 #define VIRGIL_CRYPTO_PFS_VIRGIL_PFS_H 40 #include <virgil/crypto/VirgilByteArray.h> 42 #include <virgil/crypto/pfs/VirgilPFSSession.h> 43 #include <virgil/crypto/pfs/VirgilPFSEncryptedMessage.h> 44 #include <virgil/crypto/pfs/VirgilPFSInitiatorPublicInfo.h> 45 #include <virgil/crypto/pfs/VirgilPFSInitiatorPrivateInfo.h> 46 #include <virgil/crypto/pfs/VirgilPFSResponderPublicInfo.h> 47 #include <virgil/crypto/pfs/VirgilPFSResponderPrivateInfo.h> 49 #include <virgil/crypto/primitive/VirgilOperationRandom.h> 50 #include <virgil/crypto/primitive/VirgilOperationHash.h> 51 #include <virgil/crypto/primitive/VirgilOperationDH.h> 52 #include <virgil/crypto/primitive/VirgilOperationKDF.h> 53 #include <virgil/crypto/primitive/VirgilOperationCipher.h> 55 namespace virgil {
namespace crypto {
namespace pfs {
118 void setRandom(VirgilOperationRandom random);
124 void setHash(VirgilOperationHash hash);
130 void setDH(VirgilOperationDH dh);
136 void setKDF(VirgilOperationKDF kdf);
142 void setCipher(VirgilOperationCipher cipher);
173 VirgilOperationRandom random_;
174 VirgilOperationHash hash_;
175 VirgilOperationDH dh_;
176 VirgilOperationKDF kdf_;
177 VirgilOperationCipher cipher_;
183 #endif //VIRGIL_CRYPTO_PFS_VIRGIL_PFS_H This is model object that represent session in PFS communication.
Definition: VirgilPFSSession.h:56
void setHash(VirgilOperationHash hash)
Set custom implementation for algorithm: hash.
This is model object that represent private information of a PFS Initiator.
Definition: VirgilPFSInitiatorPrivateInfo.h:53
This is model object that represent public information of a PFS Initiator.
Definition: VirgilPFSInitiatorPublicInfo.h:53
VirgilByteArray decrypt(const VirgilPFSEncryptedMessage &encryptedMessage) const
Decrypt given message.
Root namespace for all Virgil Security libraries.
Definition: VirgilAsn1Compatible.h:46
std::vector< unsigned char > VirgilByteArray
This type represents a sequence of bytes.
Definition: VirgilByteArray.h:54
void setSession(VirgilPFSSession session)
Set new session.
VirgilPFSSession startInitiatorSession(const VirgilPFSInitiatorPrivateInfo &initiatorPrivateInfo, const VirgilPFSResponderPublicInfo &responderPublicInfo, const VirgilByteArray &additionalData=VirgilByteArray())
Start session from the Initiator side.
VirgilPFSSession startResponderSession(const VirgilPFSResponderPrivateInfo &responderPrivateInfo, const VirgilPFSInitiatorPublicInfo &initiatorPublicInfo, const VirgilByteArray &additionalData=VirgilByteArray())
Start session from the Responder side.
void setCipher(VirgilOperationCipher cipher)
Set custom implementation for algorithm: Symmetric Cipher.
VirgilPFSSession getSession() const
Return current session.
VirgilPFSEncryptedMessage encrypt(const VirgilByteArray &data)
Encrypt given data.
void setRandom(VirgilOperationRandom random)
Set custom implementation for algorithm: random.
This is the main entry for the all Perfect Forward Secrecy (PFS) Modules.
Definition: VirgilPFS.h:62
This is model object that represent encrypted message produced by VirgilPFS.
Definition: VirgilPFSEncryptedMessage.h:50
This is model object that represent private information of a PFS Responder.
Definition: VirgilPFSResponderPrivateInfo.h:53
void setKDF(VirgilOperationKDF kdf)
Set custom implementation for algorithm: Key Dervation Function.
VirgilPFS()
Configures PFS module with default underlying algorithms.
This is model object that represent public information of a PFS Responder.
Definition: VirgilPFSResponderPublicInfo.h:53
void setDH(VirgilOperationDH dh)
Set custom implementation for algorithm: Diffie–Hellman.