Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
ARC4.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef _AUTH_SARC4_H
7#define _AUTH_SARC4_H
8
9#include "Define.h"
10
11#include <array>
12#include <openssl/evp.h>
13
15{
16 class ARC4
17 {
18 public:
19 ARC4();
20 ~ARC4();
21
22 void Init(uint8 const* seed, size_t len);
23 template <typename Container>
24 void Init(Container const& c) { Init(std::data(c), std::size(c)); }
25
26 void UpdateData(uint8* data, size_t len);
27 template <typename Container>
28 void UpdateData(Container& c) { UpdateData(std::data(c), std::size(c)); }
29 private:
30 EVP_CIPHER_CTX* _ctx;
31 };
32}
33
34#endif
35
std::uint8_t uint8
Definition Define.h:79
void UpdateData(Container &c)
Definition ARC4.h:28
void Init(uint8 const *seed, size_t len)
Definition ARC4.cpp:24
EVP_CIPHER_CTX * _ctx
Definition ARC4.h:30
void Init(Container const &c)
Definition ARC4.h:24
void UpdateData(uint8 *data, size_t len)
Definition ARC4.cpp:32