Skip to content

Latest commit

 

History

History
141 lines (110 loc) · 3.84 KB

basicutil.h

File metadata and controls

141 lines (110 loc) · 3.84 KB
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef _BASIC_UTILS_H_
#define _BASIC_UTILS_H_
#include "seccomon.h"
#include "secitem.h"
#include "secoid.h"
#include "secoidt.h"
#include "secport.h"
#include "prerror.h"
#include "base64.h"
#include "secasn1.h"
#include "secder.h"
Mar 17, 2017
Mar 17, 2017
16
#include "ecl-exp.h"
17
18
19
#include <stdio.h>
#ifdef SECUTIL_NEW
Apr 21, 2016
Apr 21, 2016
20
typedef int (*SECU_PPFunc)(PRFileDesc *out, SECItem *item,
21
22
23
24
25
26
char *msg, int level);
#else
typedef int (*SECU_PPFunc)(FILE *out, SECItem *item, char *msg, int level);
#endif
/* print out an error message */
Apr 19, 2013
Apr 19, 2013
27
extern void SECU_PrintError(const char *progName, const char *msg, ...);
28
29
/* print out a system error message */
Apr 19, 2013
Apr 19, 2013
30
extern void SECU_PrintSystemError(const char *progName, const char *msg, ...);
31
32
/* print a formatted error message */
Apr 19, 2013
Apr 19, 2013
33
34
extern void SECU_PrintErrMsg(FILE *out, int level, const char *progName,
const char *msg, ...);
35
36
37
38
39
40
41
42
43
44
45
46
/* Read the contents of a file into a SECItem */
extern SECStatus SECU_FileToItem(SECItem *dst, PRFileDesc *src);
extern SECStatus SECU_TextFileToItem(SECItem *dst, PRFileDesc *src);
/* Indent based on "level" */
extern void SECU_Indent(FILE *out, int level);
/* Print a newline to out */
extern void SECU_Newline(FILE *out);
/* Print integer value and hex */
Mar 23, 2013
Mar 23, 2013
47
48
extern void SECU_PrintInteger(FILE *out, const SECItem *i, const char *m,
int level);
49
50
/* Print SECItem as hex */
Mar 23, 2013
Mar 23, 2013
51
52
extern void SECU_PrintAsHex(FILE *out, const SECItem *i, const char *m,
int level);
53
54
55
56
57
58
59
60
61
62
63
64
65
/* dump a buffer in hex and ASCII */
extern void SECU_PrintBuf(FILE *out, const char *msg, const void *vp, int len);
#ifdef HAVE_EPV_TEMPLATE
/* Dump contents of private key */
extern int SECU_PrintPrivateKey(FILE *out, SECItem *der, char *m, int level);
#endif
/* Init PKCS11 stuff */
extern SECStatus SECU_PKCS11Init(PRBool readOnly);
/* Dump contents of signed data */
Apr 21, 2016
Apr 21, 2016
66
extern int SECU_PrintSignedData(FILE *out, SECItem *der, const char *m,
67
68
int level, SECU_PPFunc inner);
Mar 23, 2013
Mar 23, 2013
69
70
71
extern void SECU_PrintString(FILE *out, const SECItem *si, const char *m,
int level);
extern void SECU_PrintAny(FILE *out, const SECItem *i, const char *m, int level);
Apr 19, 2013
Apr 19, 2013
73
extern void SECU_PrintPRandOSError(const char *progName);
74
75
76
/* Caller ensures that dst is at least item->len*2+1 bytes long */
void
Apr 21, 2016
Apr 21, 2016
77
SECU_SECItemToHex(const SECItem *item, char *dst);
78
79
80
81
/* Requires 0x prefix. Case-insensitive. Will do in-place replacement if
* successful */
SECStatus
Apr 21, 2016
Apr 21, 2016
82
SECU_SECItemHexStringToBinary(SECItem *srcdest);
Jan 6, 2017
Jan 6, 2017
84
85
86
87
88
89
/*
** Read a hex string into a SecItem.
*/
extern SECItem *SECU_HexString2SECItem(PLArenaPool *arena, SECItem *item,
const char *str);
Mar 17, 2017
Mar 17, 2017
90
91
extern SECStatus SECU_ecName2params(ECCurveName curve, SECItem *params);
Apr 21, 2016
Apr 21, 2016
94
* Utilities for parsing security tools command lines
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
*
*/
/* A single command flag */
typedef struct {
char flag;
PRBool needsArg;
char *arg;
PRBool activated;
char *longform;
} secuCommandFlag;
/* A full array of command/option flags */
typedef struct
{
int numCommands;
int numOptions;
secuCommandFlag *commands;
secuCommandFlag *options;
} secuCommand;
/* fill the "arg" and "activated" fields for each flag */
Apr 21, 2016
Apr 21, 2016
118
SECStatus
119
SECU_ParseCommandLine(int argc, char **argv, char *progName,
Apr 21, 2016
Apr 21, 2016
120
const secuCommand *cmd);
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
char *
SECU_GetOptionArg(const secuCommand *cmd, int optionNum);
/*
*
* Error messaging
*
*/
void printflags(char *trusts, unsigned int flags);
#if !defined(XP_UNIX) && !defined(XP_OS2)
extern int ffs(unsigned int i);
#endif
#include "secerr.h"
extern const char *hex;
extern const char printable[];
#endif /* _BASIC_UTILS_H_ */