Linux evo.fastest-server.com 5.14.0-284.1101.el9.tuxcare.11.els11.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 14 13:30:35 UTC 2026 x86_64
LiteSpeed
Server IP : 103.249.112.113 & Your IP : 216.73.217.135
Domains : 988 Domain
User : tanishks
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
doc /
firebird /
sample /
extauth /
Delete
Unzip
Name
Size
Permission
Date
Action
msvc
[ DIR ]
drwxr-xr-x
2026-09-04 10:12
ExtAuth.cpp
10.48
KB
-rw-r--r--
2026-04-17 16:36
INSTALL
2.99
KB
-rw-r--r--
2026-04-17 16:36
Makefile
2.43
KB
-rw-r--r--
2026-04-17 16:36
TcWrapper.cpp
2.66
KB
-rw-r--r--
2026-04-17 16:36
TcWrapper.h
3.38
KB
-rw-r--r--
2026-04-17 16:36
keygen.cpp
1.81
KB
-rw-r--r--
2026-04-17 16:36
Save
Rename
/* * Tomcrypt library <= firebird : c++ wrapper. * * The contents of this file are subject to the Initial * Developer's Public License Version 1.0 (the "License"); * you may not use this file except in compliance with the * License. You may obtain a copy of the License at * https://www.firebirdsql.org/en/initial-developer-s-public-license-version-1-0/ * * Software distributed under the License is distributed AS IS, * WITHOUT WARRANTY OF ANY KIND, either express or implied. * See the License for the specific language governing rights * and limitations under the License. * * The Original Code was created by Alexander Peshkoff * for the Firebird Open Source RDBMS project. * * Copyright (c) 2020 Alexander Peshkoff <peshkoff@mail.ru> * and all contributors signed below. * * All Rights Reserved. * Contributor(s): ______________________________________. */ #include <tomcrypt.h> #include <firebird/Interface.h> using namespace Firebird; #include <stdio.h> void error(ThrowStatusWrapper* status, const char* text); void check(ThrowStatusWrapper* status, int err, const char* text); unsigned readHexKey(ThrowStatusWrapper* status, const char* hex, unsigned char* key, unsigned bufSize); class PseudoRandom { public: #if CRYPT > 0x0100 typedef ltc_prng_descriptor PrngDescriptor; #else typedef _prng_descriptor PrngDescriptor; #endif void init(ThrowStatusWrapper* status); void fini(); const PrngDescriptor* getDsc(); int index; prng_state state; }; class Hash { protected: void init(ThrowStatusWrapper* status, const ltc_hash_descriptor* desc); public: void fini() { } int index; }; class HashSha1 : public Hash { public: void init(ThrowStatusWrapper* status) { Hash::init(status, &sha1_desc); } }; class HashSha256 : public Hash { public: void init(ThrowStatusWrapper* status) { Hash::init(status, &sha256_desc); } }; // controls reference counter of the object where points enum NoIncrement {NO_INCREMENT}; template <typename T> class RefPtr { public: RefPtr() : ptr(NULL) { } explicit RefPtr(T* p) : ptr(p) { if (ptr) { ptr->addRef(); } } // This special form of ctor is used to create refcounted ptr from interface, // returned by a function (which increments counter on return) RefPtr(NoIncrement x, T* p) : ptr(p) { } RefPtr(const RefPtr& r) : ptr(r.ptr) { if (ptr) { ptr->addRef(); } } ~RefPtr() { if (ptr) { ptr->release(); } } T* operator=(T* p) { return assign(p); } T* operator=(const RefPtr& r) { return assign(r.ptr); } operator T*() { return ptr; } T* operator->() { return ptr; } operator const T*() const { return ptr; } const T* operator->() const { return ptr; } bool operator !() const { return !ptr; } bool operator ==(const RefPtr& r) const { return ptr == r.ptr; } bool operator !=(const RefPtr& r) const { return ptr != r.ptr; } void clear() throw() // Used after detach/commit/close/etc., i.e. release() not needed { ptr = NULL; } void assignNoIncrement(T* const p) { assign(NULL); ptr = p; } private: T* assign(T* const p) { if (ptr != p) { if (p) { p->addRef(); } T* tmp = ptr; ptr = p; if (tmp) { tmp->release(); } } return ptr; } T* ptr; }; // Often used form of RefPtr template <class R> class AutoRelease : public RefPtr<R> { public: AutoRelease(R* r) : RefPtr<R>(NO_INCREMENT, r) { } };