1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
/*____________________________________________________________________________
pgpCBC.h
Copyright (C) 1997 Network Associates Inc. and affiliated companies.
All rights reserved.
$Id: pgpCBC.h,v 1.5 1999/03/10 02:47:09 heller Exp $
____________________________________________________________________________*/
#ifndef Included_pgpCBC_h /* [ */
#define Included_pgpCBC_h
#include "pgpSymmetricCipher.h"
PGP_BEGIN_C_DECLARATIONS
#if PRAGMA_IMPORT_SUPPORTED
#pragma import on
#endif
/*____________________________________________________________________________
A CBC context requires use of a symmetric cipher which has been created
and whose key has been set. An error will be returned if this is not
the case.
After the call, the CBCContextRef "owns" the
symmetric ref and will dispose of it properly (even if an error
occurs). The caller should no longer reference it.
____________________________________________________________________________*/
PGPError PGPNewCBCContext( PGPSymmetricCipherContextRef ref,
PGPCBCContextRef *outRef );
/*____________________________________________________________________________
Disposal clears all data in memory before releasing it.
____________________________________________________________________________*/
PGPError PGPFreeCBCContext( PGPCBCContextRef ref );
/*____________________________________________________________________________
Make an exact copy, including current state. Original is not changed.
____________________________________________________________________________*/
PGPError PGPCopyCBCContext( PGPCBCContextRef ref, PGPCBCContextRef *outRef );
/*____________________________________________________________________________
IV size is implicit (same size as the symmetric cipher block size).
IV is *copied*.
Caller may want to destroy the original after passing it in.
____________________________________________________________________________*/
PGPError PGPInitCBC( PGPCBCContextRef ref,
const void *key,
const void *initializationVector );
/*____________________________________________________________________________
Call repeatedly to process arbitrary amounts of data. Each call must
have bytesIn be a multiple of the cipher block size.
____________________________________________________________________________*/
PGPError PGPCBCEncrypt( PGPCBCContextRef ref,
const void *in, PGPSize bytesIn, void *out );
PGPError PGPCBCDecrypt( PGPCBCContextRef ref,
const void *in, PGPSize bytesIn, void *out );
/*____________________________________________________________________________
Get the symmetric cipher being used for this CBC context.
You can use this to determine useful things about the underlying cipher
such as its block size.
____________________________________________________________________________*/
PGPError PGPCBCGetSymmetricCipher( PGPCBCContextRef ref,
PGPSymmetricCipherContextRef *outRef );
#if PRAGMA_IMPORT_SUPPORTED
#pragma import reset
#endif
PGP_END_C_DECLARATIONS
#endif /* ] Included_pgpCBC_h */
/*__Editor_settings____
Local Variables:
tab-width: 4
End:
vi: ts=4 sw=4
vim: si
_____________________*/
|