This file is indexed.

/usr/include/libgringotts.h is in libgringotts-dev 1:1.2.1-15.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
/*  libGringotts - generic data encoding (crypto+compression) library
 *  (c) 2002, Germano Rizzo <mano@pluto.linux.it>
 *
 *  libgringotts.h - general header file for libgringotts
 *  Author: Germano Rizzo
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Library General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */
#ifndef LIBGRG_H
#define LIBGRG_H

#include <sys/types.h>

// if you feel a wee bit confused please
// read the manual, tipically found at 
// /usr/share/doc/libgringotts-<version>/manual.htm

// TYPEDEFS & ENUMERATIONS

//encryption algorithms
typedef enum
{
	GRG_RIJNDAEL_128 = 0x00,	//00000000
	GRG_AES = 0x00,		//alias for GRG_RIJNDAEL_128
	GRG_SERPENT = 0x10,	//00010000 (default)
	GRG_TWOFISH = 0x20,	//00100000
	GRG_CAST_256 = 0x30,	//00110000
	GRG_SAFERPLUS = 0x40,	//01000000
	GRG_LOKI97 = 0x50,	//01010000
	GRG_3DES = 0x60,	//01100000
	GRG_RIJNDAEL_256 = 0x70	//01110000
}
grg_crypt_algo;

//hashing algorithms
typedef enum
{
	GRG_SHA1 = 0x00,	//00000000
	GRG_RIPEMD_160 = 0x08	//00001000 (default)
}
grg_hash_algo;

//compression algorithm
typedef enum
{
	GRG_ZLIB = 0x00,	//00000000 (default)
	GRG_BZIP = 0x04		//00000100
}
grg_comp_algo;

//compression level
typedef enum
{
	GRG_LVL_NONE = 0x00,	//00000000
	GRG_LVL_FAST = 0x01,	//00000001
	GRG_LVL_GOOD = 0x02,	//00000010
	GRG_LVL_BEST = 0x03	//00000011 (default)
}
grg_comp_ratio;

//security level
typedef enum
{
	GRG_SEC_NORMAL,		//default
	GRG_SEC_PARANOIA
}
grg_security_lvl;

// ERROR CODES

//I/O Ok
#define GRG_OK							0

//I/O Errors
//error codes in writing
#define GRG_WRITE_COMP_ERR				-2
#define GRG_WRITE_ENC_INIT_ERR			-4
#define GRG_WRITE_FILE_ERR				-6
//unused since 1.2.1 (don't use!)		-8
#define GRG_TMP_NOT_WRITEABLE			-10

//error codes in reading
#define GRG_READ_FILE_ERR				-1
#define GRG_READ_MMAP_ERR				-19
#define GRG_READ_MAGIC_ERR				-3
#define GRG_READ_CRC_ERR				-5
#define GRG_READ_PWD_ERR				-7
#define GRG_READ_ENC_INIT_ERR			-9
//unused since 1.2.1 (don't use!)		-11
#define GRG_READ_UNSUPPORTED_VERSION	-13
#define GRG_READ_COMP_ERR				-15
#define GRG_TMP_NOT_YET_WRITTEN			-17

//error codes in file shredding
#define	GRG_SHRED_CANT_OPEN_FILE		-51
#define GRG_SHRED_YET_LINKED			-52
#define GRG_SHRED_CANT_MMAP				-53

//generic error codes
#define GRG_MEM_ALLOCATION_ERR			-71
#define GRG_ARGUMENT_ERR				-72

typedef struct _grg_context *GRG_CTX;
typedef struct _grg_key *GRG_KEY;
typedef struct _grg_tmpfile *GRG_TMPFILE;

// General purpose functions

unsigned char *grg_get_version (void);
unsigned int grg_get_int_version (void);

// Security related functions

unsigned char *grg_rnd_seq (const GRG_CTX gctx, const unsigned int size);
void grg_rnd_seq_direct (const GRG_CTX gctx, unsigned char *toOverwrite,
	const unsigned int size);
unsigned char grg_rnd_chr (const GRG_CTX gctx);
void grg_free (const GRG_CTX gctx, void *alloc_data, const long dim);
double grg_ascii_pwd_quality (const unsigned char *pwd, const long pwd_len);
double grg_file_pwd_quality (const unsigned char *pwd_path);

// libGringotts context (GRG_CTX) related functions

GRG_CTX grg_context_initialize (const unsigned char *header,
				const grg_crypt_algo crypt_algo, const grg_hash_algo hash_algo,
				const grg_comp_algo comp_algo, const grg_comp_ratio comp_lvl,
				const grg_security_lvl sec_lvl);
GRG_CTX grg_context_initialize_defaults (const unsigned char *header);
void grg_context_free (GRG_CTX gctx);

grg_crypt_algo grg_ctx_get_crypt_algo (const GRG_CTX gctx);
grg_hash_algo grg_ctx_get_hash_algo (const GRG_CTX gctx);
grg_comp_algo grg_ctx_get_comp_algo (const GRG_CTX gctx);
grg_comp_ratio grg_ctx_get_comp_ratio (const GRG_CTX gctx);
grg_security_lvl grg_ctx_get_security_lvl (const GRG_CTX gctx);

void grg_ctx_set_crypt_algo (GRG_CTX gctx, const grg_crypt_algo crypt_algo);
void grg_ctx_set_hash_algo (GRG_CTX gctx, const grg_hash_algo hash_algo);
void grg_ctx_set_comp_algo (GRG_CTX gctx, const grg_comp_algo comp_algo);
void grg_ctx_set_comp_ratio (GRG_CTX gctx, const grg_comp_ratio comp_ratio);
void grg_ctx_set_security_lvl (GRG_CTX gctx,
			       const grg_security_lvl sec_level);

unsigned int grg_get_key_size_static (const grg_crypt_algo crypt_algo);
unsigned int grg_get_key_size (const GRG_CTX gctx);
unsigned int grg_get_block_size_static (const grg_crypt_algo crypt_algo);
unsigned int grg_get_block_size (const GRG_CTX gctx);

// libGringotts keyholder (GRG_KEY) related functions

GRG_KEY grg_key_gen (const unsigned char *pwd, const int pwd_len);
GRG_KEY grg_key_clone (const GRG_KEY src);
int grg_key_compare (const GRG_KEY k1, const GRG_KEY k2);
void grg_key_free (const GRG_CTX gctx, GRG_KEY key);

// File encryption/decryption functions
int grg_validate_file (const GRG_CTX gctx, const unsigned char *path);
int grg_update_gctx_from_file (GRG_CTX gctx, const unsigned char *path);
int grg_decrypt_file (const GRG_CTX gctx, const GRG_KEY keystruct,
		      const unsigned char *path, unsigned char **origData,
		      long *origDim);
int grg_encrypt_file (const GRG_CTX gctx, const GRG_KEY keystruct,
		      const unsigned char *path,
		      const unsigned char *origData, const long origDim);

// Their "direct" versions, requiring a file descriptor instead of a path
int grg_validate_file_direct (const GRG_CTX gctx, const int fd);
int grg_update_gctx_from_file_direct (GRG_CTX gctx, const int fd);
int grg_decrypt_file_direct (const GRG_CTX gctx, const GRG_KEY keystruct,
			     const int fd, unsigned char **origData,
			     long *origDim);
int grg_encrypt_file_direct (const GRG_CTX gctx, const GRG_KEY keystruct,
			     const int fd, const unsigned char *origData,
			     const long origDim);

// Memory encryption/decryption functions
int grg_validate_mem (const GRG_CTX gctx, const void *mem, const long memDim);
int grg_update_gctx_from_mem (GRG_CTX gctx, const void *mem,
			      const long memDim);
int grg_decrypt_mem (const GRG_CTX gctx, const GRG_KEY keystruct,
		     const void *mem, const long memDim,
		     unsigned char **origData, long *origDim);
int grg_encrypt_mem (const GRG_CTX gctx, const GRG_KEY keystruct, void **mem,
		     long *memDim, const unsigned char *origData,
		     const long origDim);

// Encrypted temporary files functions
GRG_TMPFILE grg_tmpfile_gen (const GRG_CTX gctx);
int grg_tmpfile_write (const GRG_CTX gctx, GRG_TMPFILE tf,
		       const unsigned char *data, const long data_len);
int grg_tmpfile_read (const GRG_CTX gctx, const GRG_TMPFILE tf,
		      unsigned char **data, long *data_len);
void grg_tmpfile_close (const GRG_CTX gctx, GRG_TMPFILE tf);

// Miscellaneous file functions
unsigned char *grg_encode64 (const unsigned char *in,
			     const int inlen, unsigned int *outlen);
unsigned char *grg_decode64 (const unsigned char *in,
			     const int inlen, unsigned int *outlen);

int grg_file_shred (const char *path, const int npasses);

#endif