Richard Boegli's CnC_Generals_Zero_Hour Fork
WIP
This is documentation of Richard Boegil's Zero Hour Fork
Loading...
Searching...
No Matches
blwstraw.h
Go to the documentation of this file.
1
/*
2
** Command & Conquer Generals Zero Hour(tm)
3
** Copyright 2025 Electronic Arts Inc.
4
**
5
** This program is free software: you can redistribute it and/or modify
6
** it under the terms of the GNU General Public License as published by
7
** the Free Software Foundation, either version 3 of the License, or
8
** (at your option) any later version.
9
**
10
** This program is distributed in the hope that it will be useful,
11
** but WITHOUT ANY WARRANTY; without even the implied warranty of
12
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
** GNU General Public License for more details.
14
**
15
** You should have received a copy of the GNU General Public License
16
** along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
/***********************************************************************************************
20
*** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
21
***********************************************************************************************
22
* *
23
* Project Name : Command & Conquer *
24
* *
25
* $Archive:: /Commando/Library/BLWSTRAW.H $*
26
* *
27
* $Author:: Greg_h $*
28
* *
29
* $Modtime:: 7/22/97 11:37a $*
30
* *
31
* $Revision:: 1 $*
32
* *
33
*---------------------------------------------------------------------------------------------*
34
* Functions: *
35
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
36
37
#ifndef BLWSTRAW_H
38
#define BLWSTRAW_H
39
40
#include "
straw.h
"
41
#include "
blowfish.h
"
42
43
44
/*
45
** Performs Blowfish encryption/decryption to the data that is drawn through this straw. The
46
** process is controlled by the key which must be submitted to the class before any data
47
** manipulation will occur. The Blowfish algorithm is symmetric, thus the same key is used
48
** for encryption as is for decryption.
49
*/
50
class
BlowStraw
:
public
Straw
51
{
52
public
:
53
typedef
enum
CryptControl
{
54
ENCRYPT
,
55
DECRYPT
56
}
CryptControl
;
57
58
BlowStraw
(
CryptControl
control) :
BF
(
NULL
), Counter(0), Control(control) {}
59
virtual
~BlowStraw
(
void
) {
delete
BF
;
BF
=
NULL
;}
60
61
virtual
int
Get
(
void
* source,
int
slen);
62
63
// Submit key for blowfish engine.
64
void
Key
(
void
const
* key,
int
length);
65
66
protected
:
67
/*
68
** The Blowfish engine used for encryption/decryption. If this pointer is
69
** NULL, then this indicates that the blowfish engine is not active and no
70
** key has been submitted. All data would pass through this straw unchanged
71
** in that case.
72
*/
73
BlowfishEngine
*
BF
;
74
75
private
:
76
char
Buffer[8];
77
int
Counter;
78
CryptControl
Control;
79
80
BlowStraw
(
BlowStraw
& rvalue);
81
BlowStraw
& operator = (
BlowStraw
const
& straw);
82
};
83
84
85
#endif
NULL
#define NULL
Definition
BaseType.h:92
STRAW.H
blowfish.h
BlowStraw::Key
void Key(void const *key, int length)
Definition
blwstraw.cpp:146
BlowStraw::BlowStraw
BlowStraw(CryptControl control)
Definition
blwstraw.h:58
BlowStraw::Get
virtual int Get(void *source, int slen)
Definition
blwstraw.cpp:65
BlowStraw::CryptControl
CryptControl
Definition
blwstraw.h:53
BlowStraw::ENCRYPT
@ ENCRYPT
Definition
blwstraw.h:54
BlowStraw::DECRYPT
@ DECRYPT
Definition
blwstraw.h:55
BlowStraw::~BlowStraw
virtual ~BlowStraw(void)
Definition
blwstraw.h:59
BlowStraw::BF
BlowfishEngine * BF
Definition
blwstraw.h:73
BlowfishEngine
Definition
blowfish.h:63
Straw::Straw
Straw(void)
Definition
STRAW.H:53
Code
Libraries
Source
WWVegas
WWLib
blwstraw.h
Generated by
1.13.2