/usr/include/sipxtapi/utl/UtlCryptoKeySym.h is in libsipxtapi-dev 3.3.0~test17-2.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | //
// Copyright (C) 2008 SIPfoundry Inc.
// Licensed by SIPfoundry under the LGPL license.
//
// Copyright (C) 2008 SIPez LLC.
// Licensed to SIPfoundry under a Contributor Agreement.
//
// Copyright (C) 2008 Mutualink, Inc.
// Licensed to SIPfoundry under a Contributor Agreement.
//
// $$
//////////////////////////////////////////////////////////////////////////////
// Author: Sergey Kostanbaev <Sergey DOT Kostanbaev AT sipez DOT com>
#ifndef _UtlCryptoKeySym_h_
#define _UtlCryptoKeySym_h_
// SYSTEM INCLUDES
// APPLICATION INCLUDES
#include "utl/UtlCryptoKey.h"
// DEFINES
// MACROS
// EXTERNAL FUNCTIONS
// EXTERNAL VARIABLES
// STRUCTS
// TYPEDEFS
// FORWARD DECLARATIONS
/**
* @brief A symmetric key implementation of UtlCryptoKey
*/
class UtlCryptoKeySym : public UtlCryptoKey
{
/* //////////////////////////////// PUBLIC //////////////////////////////// */
public:
/* =============================== CREATORS =============================== */
///@name Creators
//@{
/// Constructor
UtlCryptoKeySym();
/// Destructor
~UtlCryptoKeySym();
//@}
/* ============================= MANIPULATORS ============================= */
///@name Manipulators
//@{
/// Generates a new key.
int generateKey();
/**<
* @NOTE: Don't use it due the not strong algorithm, for testing only
* @return 0 on success, non-0 error code on failure
*/
/// Loads a binary key value
int loadBinaryKey(const unsigned char* pSrc, int srcLen);
/**<
* @return 0 on success
*/
/// Retrieves a binary key value (for later use by loadBinaryKey)
UtlCryptoData* getBinaryKey() const;
/// Returns the max encrypted size of srcLen bytes from encrypt()
int getMaxEncryptedSize(int srcLen) const;
/// @copydoc UtlCryptoKey::encrypt
int encrypt(const unsigned char* pSrc,
int srcLen,
unsigned char* pDest,
int* pDestLen) const;
int getMaxDecryptedSize(int srcLen) const;
/// @copydoc UtlCryptoKey::decrypt
int decrypt(const unsigned char* pSrc,
int srcLen,
unsigned char* pDest,
int* pDestLen) const;
//@}
/* ============================== ACCESSORS =============================== */
///@name Accessors
//@{
//@}
/* =============================== INQUIRY ================================ */
///@name Inquiry
//@{
/// Return total key length
int getTotalKeyLength();
/// Dump key to memeory
UtlBoolean getBinaryKey(char* buffer, int bufferLength);
/// Get humane-readable describe
UtlString output() const;
//@}
/* ////////////////////////////// PROTECTED /////////////////////////////// */
protected:
/* /////////////////////////////// PRIVATE //////////////////////////////// */
private:
void clearKey();
const EVP_CIPHER* const mpCipher;
const int mKeyLen;
const int mIvLen;
UtlCryptoData* mpKey;
UtlCryptoData* mpIv;
};
/* ============================ INLINE METHODS ============================ */
#endif // _UtlCryptoKeyRsa_h_
|