This file is indexed.

/usr/include/c-lib/inc/asn-len.h is in libesnacc-dev 1.8.1-1.

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
/*
 * asn_len.h
 *
 * Warning: many of these routines are MACROs for performance reasons
 *          - be carful where you use them.  Don't use more than one per
 *          assignment statement -
 *          (eg itemLen += BEncEoc (b) + BEncFoo (b) ..; this
 *           will break the code)
 *
 * MS 92
 * Copyright (C) 1992 Michael Sample and the University of British Columbia
 *
 * This library is free software; you can redistribute it and/or
 * modify it provided that this copyright/license information is retained
 * in original form.
 *
 * If you modify this file, you must clearly indicate your changes.
 *
 * This source code 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.
 *
 * $Header: /baseline/SNACC/c-lib/inc/asn-len.h,v 1.7 2003/12/17 19:05:03 gronej Exp $
 * $Log: asn-len.h,v $
 * Revision 1.7  2003/12/17 19:05:03  gronej
 * SNACC baseline merged with PER v1_7 tag
 *
 * Revision 1.6.2.1  2003/11/05 14:58:55  gronej
 * working PER code merged with esnacc_1_6
 *
 * Revision 1.6  2003/02/20 21:07:59  leonberp
 * added #ifdef __cplusplus extern "C" to headers
 *
 * Revision 1.5  2002/10/23 10:23:51  mcphersc
 * Changed BUF_TYPE to AsnBuf
 *
 * Revision 1.4  2002/10/21 17:13:24  mcphersc
 * fixed long int
 *
 * Revision 1.3  2002/10/01 14:13:34  mcphersc
 * ASN "C" Buf modifications
 *
 * Revision 1.2  2001/07/12 19:34:02  leonberp
 * Changed namespace to SNACC and added compiler options: -ns and -nons.  Also removed dead code.
 *
 * Revision 1.1.1.1  2000/08/21 20:35:54  leonberp
 * First CVS Version of SNACC.
 *
 * Revision 1.4  1997/08/28 07:25:52  povey
 * Changes to support DER encoding/decoding
 *
 * Revision 1.3.1.1  1997/08/20 23:14:43  povey
 *
 * Revision 1.2  1995/07/27 08:42:40  rj
 * cpp macro TBL changed to TTBL since some type table code uses TBL as a type name.
 *
 * changed `_' to `-' in file names.
 *
 * Revision 1.1  1994/08/28  09:21:29  rj
 * first check-in. for a list of changes to the snacc-1.1 distribution please refer to the ChangeLog.
 *
 */

#ifndef _asn_len_h_
#define _asn_len_h_

#ifdef __cplusplus
extern "C" {
#endif


typedef unsigned long AsnLen;

/*
 * BER Encoding/Decoding routines
 */

/* max unsigned value  - used for internal rep of indef len */
#define INDEFINITE_LEN		~0UL


#ifdef USE_INDEF_LEN


#define BEncEocIfNec( b)	BEncEoc (b)

/*
 * include len for EOC  (2 must be first due to BEncIndefLen
 * - ack! ugly macros!)
 */
#define BEncConsLen( b, len)	2 + BEncIndefLen(b)


#else  /* use definite length - faster?/smaller encodings */


/* do nothing since only using definite lens */
#define BEncEocIfNec( b)

#define BEncConsLen( b, len)	BEncDefLen(b, len)


#endif



/*
 * writes indefinite length byte to buffer. 'returns' encoded len (1)
 */
#define BEncIndefLen( b)\
    1;\
    BufPutByteRvs (b, 0x80);

#ifndef _DEBUG
#define BEncEoc( b)\
    2;\
    BufPutByteRvs (b, 0);\
    BufPutByteRvs (b, 0);
#endif

/*
 * use if you know the encoded length will be 0 >= len <= 127
 * Eg for booleans, nulls, any resonable integers and reals
 *
 * NOTE: this particular Encode Routine does NOT return the length
 * encoded (1).
 */
#define BEncDefLenTo127( b, len)\
    BufPutByteRvs (b, (unsigned char) len)

#define BDEC_2ND_EOC_OCTET( b, bytesDecoded, env)\
{\
    if ((BufGetByte (b) != 0) || BufReadError (b)) {\
        Asn1Error ("ERROR - second octet of EOC not zero\n");\
        longjmp (env, -28);}\
     (*bytesDecoded)++;\
}


AsnLen BEncDefLen PROTO ((GenBuf *b, AsnLen len));
AsnLen BEncDefLen2 PROTO ((GenBuf *b, long  len));
AsnLen BDecLen PROTO ((GenBuf *b, AsnLen  *bytesDecoded, ENV_TYPE env));

#ifdef _DEBUG
AsnLen BEncEoc PROTO ((GenBuf *b));
#endif
void BDecEoc PROTO ((GenBuf *b, AsnLen *bytesDecoded, ENV_TYPE env));

#if TTBL
int PeekEoc PROTO ((GenBuf *b));
#endif

/*
 * DER Encoding/Decoding routines 
 */

/* We always use Definite length encoders */

/* do nothing since only using definite lens */
#define DEncEocIfNec( b)

#define DEncConsLen DEncDefLen

/*
 * use if you know the encoded length will be 0 >= len <= 127
 * Eg for booleans, nulls, any resonable integers and reals
 *
 * NOTE: this particular Encode Routine does NOT return the length
 * encoded (1).
 */
#define DEncDefLenTo127( b, len)\
    BufPutByteRvs (b, (unsigned char) len)

#define DEncDefLen BEncDefLen

AsnLen DDecLen PROTO ((GenBuf *b, AsnLen  *bytesDecoded, ENV_TYPE env));

/* Error conditions */
#define DDecEoc(a, b, env) longjmp(env, -666)

/* Should never happen */
#define DDEC_2ND_EOC_OCTET(a, b, env)

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* conditional include */