Skip to content

Red-company/RedLibrary

Repository files navigation

plot

📚 RedLibrary (مكتبة ريد)

What is it?

--Documentation--

This is a library which uses by Red projects. It consists of small libraries which are helpful in big projects. Each of these libraries was tested hard and if you see them in this repository, that means that they're reliable.

How to use it?

These libraries are 'ready to work', all you need is just write a code. All examples are in "examples" folder.

Notes:

  • Made in C++17
  • Uses these libraries(they're already linked):
    • Boost
    • Openssl
    • Fmt
    • Sqlite3
    • Unicode(icu4c)
    • Gsasl

Notes 2(About AES and RES):

  • If you want to route result of AES / RES encryption to std::cout, you should convert string to hexadecimal system, in other way you will get bad output!
  • Convertion functions are in Hex.h.
  • In AES and RES there are no built-in error checking or protection from out-of-bounds memory access errors as a result of malicious input.

Notes 3(About DiffieHellman):

  • P number (prime one) works stable with 19729 characters long (From 'RedTypes.h': 'Red::uint65536_t').
  • Example of usage is in 'examples' folder. It is a good idea to read how diffiehellman works.
  • Needs to understand that the time of calculation rises as the secret key value rises.
  • Tested with Asecret=7000000 and Bsecret=90, but takes a lot of time to calculate.
  • Secret key is restricted by uint max size in power function(function from boost is used there).

Notes 4(About Randomizer):

  • Max return value is 'ull' int.

Notes 5(about Va1):

  • Original repository is here.

Notes 6(about Sha256):

  • Original repository is here.
  • Speed test is here.

Notes 7(about FastSqrt):

  • Uses inside long int type.
  • Original repository is here.

Notes 8(about 2layerDiffieHellman):

  • Everything about it is here.

Notes 6(about Sha512):

  • Original repository is here.

Notes 7(about RedTypes):

  • Test can be found here

Additional notes:

  • All other libraries can be described by files in example folder.

All material in this repository is in the public domain.