This file is indexed.

/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_