// This C++ header file was generated by the TTCN-3 compiler
// of the TTCN-3 Test Executor version 11.1.0
// The generation of user and time information were disabled by the -D flag.

// Copyright (c) 2000-2025 Ericsson Telecom AB

// Do not edit this file unless you know what you are doing.

#ifndef TCCOpenSecurity__Functions_HH
#define TCCOpenSecurity__Functions_HH

#ifdef TITAN_RUNTIME_2
#error Generated code does not match with used runtime.\
 Code was generated without -R option but -DTITAN_RUNTIME_2 was used.
#endif

/* Header file includes */

#include <TTCN3.hh>

#if TTCN3_VERSION != 110100
#error Version mismatch detected.\
 Please check the version of the TTCN-3 compiler and the base library.\
 Run make clean and rebuild the project if the version of the compiler changed recently.
#endif

#ifndef LINUX
#error This file should be compiled on LINUX
#endif

namespace TCCOpenSecurity__Functions {

/* Type definitions */

typedef OCTETSTRING OCT__16;
typedef OCTETSTRING_template OCT__16_template;
typedef OCTETSTRING OCT__64;
typedef OCTETSTRING_template OCT__64_template;

/* Function prototypes */

extern CHARSTRING f__calculateDigestResponse(const CHARSTRING& nonce, const CHARSTRING& cnonce, const CHARSTRING& user, const CHARSTRING& realm, const CHARSTRING& passwd, const CHARSTRING& alg, const CHARSTRING& nonceCount, const CHARSTRING& method, const CHARSTRING& qop, const CHARSTRING& URI, const CHARSTRING& HEntity);
extern CHARSTRING f__calculateDigestHA1(const CHARSTRING& nonce, const CHARSTRING& cnonce, const CHARSTRING& user, const CHARSTRING& realm, const CHARSTRING& passwd, const CHARSTRING& alg);
extern OCTETSTRING f__calculateRAND__oct(const INTEGER& pl__length);
extern CHARSTRING f__calculateMD5(const CHARSTRING& pszHashInput);
extern OCTETSTRING f__calculateMD5__oct(const OCTETSTRING& pszHashInput);
extern CHARSTRING f__calculateSHA1(const CHARSTRING& pszHashInput);
extern OCTETSTRING f__calculateSHA1__oct(const OCTETSTRING& pszHashInput);
extern OCTETSTRING f__calculateHMACMD5(const OCTETSTRING& msg, const OCTETSTRING& key);
extern OCTETSTRING f__calculate__HMAC__MD5(const OCTETSTRING& pl__key, const OCTETSTRING& pl__input, const INTEGER& pl__length);
extern OCTETSTRING f__calculate__HMAC__SHA1(const OCTETSTRING& pl__key, const OCTETSTRING& pl__input, const INTEGER& pl__length);
extern OCTETSTRING f__calculate__HMAC__SHA256(const OCTETSTRING& pl__key, const OCTETSTRING& pl__input, const INTEGER& pl__length);
extern OCTETSTRING f__AES__CBC__128__Encrypt__OpenSSL(const OCTETSTRING& p__key, const OCTETSTRING& p__iv, const OCTETSTRING& p__data);
extern OCTETSTRING f__AES__CBC__128__Decrypt__OpenSSL(const OCTETSTRING& p__key, const OCTETSTRING& p__iv, const OCTETSTRING& p__data);
extern OCTETSTRING f__AES__CBC__Encrypt__OpenSSL(const OCTETSTRING& p__key, const OCTETSTRING& p__iv, const OCTETSTRING& p__data);
extern OCTETSTRING f__AES__CBC__Decrypt__OpenSSL(const OCTETSTRING& p__key, const OCTETSTRING& p__iv, const OCTETSTRING& p__data);
extern OCTETSTRING ef__3DES__ECB__Encrypt(const OCTETSTRING& pl__data, const OCTETSTRING& pl__key, const BOOLEAN& pl__use__padding);
extern OCTETSTRING ef__3DES__ECB__Decrypt(const OCTETSTRING& pl__data, const OCTETSTRING& pl__key, const BOOLEAN& pl__use__padding);
extern OCTETSTRING ef__3DES__CBC__Encrypt(const OCTETSTRING& pl__data, const OCTETSTRING& pl__key, const OCTETSTRING& pl__iv, const BOOLEAN& pl__use__padding);
extern OCTETSTRING ef__3DES__CBC__Decrypt(const OCTETSTRING& pl__data, const OCTETSTRING& pl__key, const OCTETSTRING& pl__iv, const BOOLEAN& pl__use__padding);
extern OCTETSTRING ef__Calculate__AES__XCBC__128(const OCTETSTRING& pl__data, const OCTETSTRING& pl__key, const INTEGER& pl__out__length);
extern INTEGER ef__DH__generate__private__public__keys(const INTEGER& pl__keyLength, OCTETSTRING& pl__pubkey, OCTETSTRING& pl__privkey);
extern OCTETSTRING ef__DH__shared__secret(const OCTETSTRING& pl__pubkey, const OCTETSTRING& pl__privkey);
extern OCTETSTRING f__AES__ECB__128__Encrypt__OpenSSL(const OCTETSTRING& p__key, const OCTETSTRING& p__data);
extern OCTETSTRING f__AES__ECB__128__Decrypt__OpenSSL(const OCTETSTRING& p__key, const OCTETSTRING& p__data);
extern OCTETSTRING f__AES__CTR__128__Encrypt__Decrypt__OpenSSL(const OCTETSTRING& p__key, const OCTETSTRING& p__iv, const OCTETSTRING& p__data);
extern void pre_init_module();
extern void post_init_module();

/* Global variable declarations */

extern const TTCN_RAWdescriptor_t OCT__16_raw_;
extern const XERdescriptor_t OCT__16_xer_;
extern const TTCN_OERdescriptor_t OCT__16_oer_;
extern const TTCN_Typedescriptor_t OCT__16_descr_;
extern const TTCN_RAWdescriptor_t OCT__64_raw_;
extern const XERdescriptor_t OCT__64_xer_;
extern const TTCN_OERdescriptor_t OCT__64_oer_;
extern const TTCN_Typedescriptor_t OCT__64_descr_;
extern const BOOLEAN& ef__3DES__ECB__Encrypt_pl__use__padding_defval;
extern BOOLEAN const_ef__3DES__ECB__Encrypt_pl__use__padding_defval;
extern const BOOLEAN& ef__3DES__ECB__Decrypt_pl__use__padding_defval;
extern BOOLEAN const_ef__3DES__ECB__Decrypt_pl__use__padding_defval;
extern const BOOLEAN& ef__3DES__CBC__Encrypt_pl__use__padding_defval;
extern BOOLEAN const_ef__3DES__CBC__Encrypt_pl__use__padding_defval;
extern const BOOLEAN& ef__3DES__CBC__Decrypt_pl__use__padding_defval;
extern BOOLEAN const_ef__3DES__CBC__Decrypt_pl__use__padding_defval;
extern const unsigned char module_checksum[];
extern TTCN_Module module_object;
extern const RuntimeVersionChecker ver_checker;

} /* end of namespace */

#endif
