NetBurner 3.1
convert.h
1 /*NB_REVISION*/
2 
3 /*NB_COPYRIGHT*/
4 
5 #ifndef _CONVERT_H_
6 #define _CONVERT_H_
7 
8 /*
9  ******************************************************************************
10  *
11  * Definitions
12  *
13  ******************************************************************************
14  */
15 /* Minimum data buffer length in bytes */
16 #define CONVERT_BUFFER_LENGTH_MAX ((4 * 1024) - 1)
17 
18 /* Converted PEM data type */
19 #define CONVERT_NONE (0)
20 #define CONVERT_RSA_PRIVATE_KEY (1)
21 #define CONVERT_DSA_PRIVATE_KEY (2)
22 #define CONVERT_CERTIFICATE (3)
23 
24 /* PEM data headers and footers */
25 #define CONVERT_CERTIFICATE_HEADER "-----BEGIN CERTIFICATE-----"
26 #define CONVERT_RSA_PRIVATE_KEY_HEADER "-----BEGIN RSA PRIVATE KEY-----"
27 #define CONVERT_DSA_PRIVATE_KEY_HEADER "-----BEGIN DSA PRIVATE KEY-----"
28 #define CONVERT_CERTIFICATE_FOOTER "-----END CERTIFICATE-----"
29 #define CONVERT_RSA_PRIVATE_KEY_FOOTER "-----END RSA PRIVATE KEY-----"
30 #define CONVERT_DSA_PRIVATE_KEY_FOOTER "-----END DSA PRIVATE KEY-----"
31 
32 /*
33  ******************************************************************************
34 
35  Convert data from Privacy-enhanced Electronic Mail (PEM) format to binary.
36 
37  Parameters:
38  dataPtr - Buffer for converted data
39  pemEncodedData - PEM encoded data
40  dataSize - Buffer size in bytes
41  convertedDataLength - Set to length of converted data
42 
43  Return:
44  CONVERT_NONE - Malformed data or calling parameters
45  CONVERT_CERTIFICATE
46  CONVERT_RSA_PRIVATE_KEY
47  CONVERT_DSA_PRIVATE_KEY
48 
49  Notes:
50  dataSize should be at least CONVERT_BUFFER_LENGTH_MAX and NULL
51  terminated.
52  Limited to file formats used for RSA & DSA keys and X.509 certificates.
53 
54  ******************************************************************************
55  */
56 int ConvertPEMFormattedData(puint8_t dataPtr,
57  const char *pemEncodedData,
58  uint32_t dataSize,
59  puint32_t convertedDataLength,
60  char **nextPtr = NULL);
61 
62 /*
63  ******************************************************************************
64 
65  Convert multibyte host format data to/from little endian
66 
67  Parameters:
68  data - Multibyte data to convert
69 
70  Return:
71  Data in little-endian format
72 
73  Notes:
74  none
75 
76  ******************************************************************************
77  */
78 uint16_t convertLittleEndianWord(uint16_t hData);
79 uint32_t convertLittleEndianDword(uint32_t hData);
80 
81 #endif /* #ifdef _CONVERT_H_ */
#define NULL
Definition: nm_bsp.h:76