This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
gcc-3.0.1 generates invalid assembler (undefined label) on sparc
- From: nisse at lysator dot liu dot se (Niels Möller)
- To: gcc-bugs at gcc dot gnu dot org
- Date: 25 Nov 2001 12:45:44 +0100
- Subject: gcc-3.0.1 generates invalid assembler (undefined label) on sparc
[Get raw message]
I tried compiling mozilla on sparc-linux, with
crypto-stuff enabled. Compilation crashed at the assembly stage, with
the message
{standard input}: Assembler messages:
{standard input}:696: Error: undefined symbol .LL280 in operation
I added -save-temps to the compilation flags to be able to look
further. The generated assembler file contains
bgu .LL289
cmp %l0, 0
sethi %hi(_GLOBAL_OFFSET_TABLE_-(.LL280-.)), %o0 ! [line 696]
st %i2, [%i0+12]
call SECOID_FindOIDByTag, 0
That is the only occurance of the label ".LL280" in the file. I'm
using a Sparc Station 4 running Debian GNU/Linux, and a gcc-3.0.1 I
compiled from source with no special configure flags a while back.
Version numbers:
$ gcc --version
3.0.1
$ uname -a
Linux cuckoo 2.2.19 #1 Mon Apr 2 13:29:46 EDT 2001 sparc unknown
Compilation command:
gcc -save-temps -c -O2 -fPIC -DLINUX1_2 -D_XOPEN_SOURCE -DLINUX2_1
-ansi -Wall -pipe -DLINUX -Dlinux -D_POSIX_SOURCE -D_BSD_SOURCE
-DHAVE_STRERROR -DXP_UNIX -UDEBUG -DNDEBUG -D_REENTRANT
-I/home/nisse/hack/mozilla/dist/include
-I../../../../dist/public/security -I../../../../dist/private/security
-I../../../../dist/include
-I/home/nisse/hack/mozilla/dist/include/nspr
-I/home/nisse/hack/mozilla/dist/include/dbm
-I../../../../dist/public/security -I../../../../dist/public/dbm
p12e.c
I append the preprocessed source file (which is rather big).
Regards,
/Niels
--------------8<---- p12e.i ---8<--------
# 34 "p12e.c"
# 1 "../../../../dist/private/security/nssrenam.h" 1
# 35 "p12e.c" 2
# 1 "p12t.h" 1
# 37 "p12t.h"
# 1 "../../../../dist/public/security/secoid.h" 1
# 42 "../../../../dist/public/security/secoid.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 44 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 1
# 55 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prcpucfg.h" 1
# 56 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 2
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 147 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 3
typedef int ptrdiff_t;
# 199 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 3
typedef unsigned int size_t;
# 287 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 3
typedef int wchar_t;
# 59 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 2
# 260 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h"
typedef unsigned char PRUint8;
# 274 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h"
typedef signed char PRInt8;
# 287 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h"
typedef unsigned short PRUint16;
typedef short PRInt16;
# 300 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h"
typedef unsigned int PRUint32;
typedef int PRInt32;
# 334 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h"
typedef long long PRInt64;
typedef unsigned long long PRUint64;
# 358 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h"
typedef int PRIntn;
typedef unsigned int PRUintn;
# 369 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h"
typedef double PRFloat64;
typedef size_t PRSize;
typedef PRInt32 PROffset32;
typedef PRInt64 PROffset64;
typedef ptrdiff_t PRPtrdiff;
typedef unsigned long PRUptrdiff;
# 411 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h"
typedef PRIntn PRBool;
# 421 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h"
typedef PRUint8 PRPackedBool;
typedef enum { PR_FAILURE = -1, PR_SUCCESS = 0 } PRStatus;
# 440 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h"
typedef long PRWord;
typedef unsigned long PRUword;
# 482 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/obsolete/protypes.h" 1
# 45 "/home/nisse/hack/mozilla/dist/include/nspr/obsolete/protypes.h"
typedef PRUintn uintn;
typedef PRIntn intn;
# 83 "/home/nisse/hack/mozilla/dist/include/nspr/obsolete/protypes.h"
# 1 "/usr/include/sys/types.h" 1 3
# 26 "/usr/include/sys/types.h" 3
# 1 "/usr/include/features.h" 1 3
# 250 "/usr/include/features.h" 3
# 1 "/usr/include/sys/cdefs.h" 1 3
# 251 "/usr/include/features.h" 2 3
# 278 "/usr/include/features.h" 3
# 1 "/usr/include/gnu/stubs.h" 1 3
# 279 "/usr/include/features.h" 2 3
# 27 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 26 "/usr/include/bits/types.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/bits/types.h" 2 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 30 "/usr/include/bits/types.h" 2 3
# 1 "/usr/include/bits/wordsize.h" 1 3
# 31 "/usr/include/bits/types.h" 2 3
typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;
__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# 55 "/usr/include/bits/types.h" 3
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
typedef __quad_t *__qaddr_t;
typedef __u_quad_t __dev_t;
typedef __u_int __uid_t;
typedef __u_int __gid_t;
typedef __u_long __ino_t;
typedef __u_long __ino64_t;
typedef __u_int __mode_t;
typedef __u_int __nlink_t;
typedef long int __off_t;
typedef __quad_t __off64_t;
typedef __quad_t __loff_t;
typedef int __pid_t;
typedef int __ssize_t;
typedef __u_long __rlim_t;
typedef __u_quad_t __rlim64_t;
typedef __u_int __id_t;
typedef struct
{
int __val[2];
} __fsid_t;
typedef int __daddr_t;
typedef char *__caddr_t;
typedef long int __time_t;
typedef long int __swblk_t;
typedef long int __clock_t;
typedef unsigned long int __fd_mask;
# 122 "/usr/include/bits/types.h" 3
typedef struct
{
__fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
} __fd_set;
typedef int __key_t;
typedef unsigned short int __ipc_pid_t;
typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;
typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;
typedef unsigned long int __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;
typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;
typedef int __intptr_t;
# 31 "/usr/include/sys/types.h" 2 3
typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;
typedef __loff_t loff_t;
typedef __ino_t ino_t;
# 58 "/usr/include/sys/types.h" 3
typedef __dev_t dev_t;
typedef __gid_t gid_t;
typedef __mode_t mode_t;
typedef __nlink_t nlink_t;
typedef __uid_t uid_t;
typedef __off_t off_t;
# 96 "/usr/include/sys/types.h" 3
typedef __pid_t pid_t;
typedef __id_t id_t;
typedef __ssize_t ssize_t;
typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;
typedef __key_t key_t;
# 1 "/usr/include/time.h" 1 3
# 57 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 58 "/usr/include/time.h" 2 3
typedef __clock_t clock_t;
# 1 "/usr/include/bits/types.h" 1 3
# 69 "/usr/include/time.h" 2 3
typedef __time_t time_t;
# 123 "/usr/include/sys/types.h" 2 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 126 "/usr/include/sys/types.h" 2 3
typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 169 "/usr/include/sys/types.h" 3
typedef int int8_t __attribute__ ((__mode__ (__QI__)));
typedef int int16_t __attribute__ ((__mode__ (__HI__)));
typedef int int32_t __attribute__ ((__mode__ (__SI__)));
typedef int int64_t __attribute__ ((__mode__ (__DI__)));
typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
typedef int register_t __attribute__ ((__mode__ (__word__)));
# 191 "/usr/include/sys/types.h" 3
# 1 "/usr/include/endian.h" 1 3
# 22 "/usr/include/endian.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/endian.h" 2 3
# 35 "/usr/include/endian.h" 3
# 1 "/usr/include/bits/endian.h" 1 3
# 36 "/usr/include/endian.h" 2 3
# 192 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/sys/select.h" 1 3
# 25 "/usr/include/sys/select.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 29 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/select.h" 1 3
# 32 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/sigset.h" 1 3
# 23 "/usr/include/bits/sigset.h" 3
typedef int __sig_atomic_t;
typedef struct
{
unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
} __sigset_t;
# 35 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/time.h" 1 3
# 83 "/usr/include/time.h" 3
struct timespec
{
long int tv_sec;
long int tv_nsec;
};
# 39 "/usr/include/sys/select.h" 2 3
struct timeval;
typedef __fd_mask fd_mask;
typedef __fd_set fd_set;
# 74 "/usr/include/sys/select.h" 3
extern int __select (int __nfds, __fd_set *__readfds, __fd_set *__writefds, __fd_set *__exceptfds, struct timeval *__timeout) ;
extern int select (int __nfds, __fd_set *__readfds, __fd_set *__writefds, __fd_set *__exceptfds, struct timeval *__timeout) ;
# 195 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/sys/sysmacros.h" 1 3
# 23 "/usr/include/sys/sysmacros.h" 3
# 1 "/usr/include/bits/wordsize.h" 1 3
# 24 "/usr/include/sys/sysmacros.h" 2 3
# 198 "/usr/include/sys/types.h" 2 3
typedef __blkcnt_t blkcnt_t;
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
# 84 "/home/nisse/hack/mozilla/dist/include/nspr/obsolete/protypes.h" 2
# 105 "/home/nisse/hack/mozilla/dist/include/nspr/obsolete/protypes.h"
typedef PRUint64 uint64;
# 114 "/home/nisse/hack/mozilla/dist/include/nspr/obsolete/protypes.h"
typedef PRUint32 uint32;
# 125 "/home/nisse/hack/mozilla/dist/include/nspr/obsolete/protypes.h"
typedef PRUint16 uint16;
typedef PRUint8 uint8;
# 142 "/home/nisse/hack/mozilla/dist/include/nspr/obsolete/protypes.h"
typedef PRInt64 int64;
# 154 "/home/nisse/hack/mozilla/dist/include/nspr/obsolete/protypes.h"
typedef PRInt32 int32;
# 168 "/home/nisse/hack/mozilla/dist/include/nspr/obsolete/protypes.h"
typedef PRInt16 int16;
# 178 "/home/nisse/hack/mozilla/dist/include/nspr/obsolete/protypes.h"
typedef PRInt8 int8;
typedef PRFloat64 float64;
typedef PRUptrdiff uptrdiff_t;
typedef PRUword uprword_t;
typedef PRWord prword_t;
# 483 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 2
# 45 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarenas.h" 1
# 41 "/home/nisse/hack/mozilla/dist/include/nspr/plarenas.h"
typedef struct PLArenaPool PLArenaPool;
# 73 "/home/nisse/hack/mozilla/dist/include/nspr/plarenas.h"
extern void PL_InitArenaPool(
PLArenaPool *pool, const char *name, PRUint32 size, PRUint32 align);
extern void PL_ArenaFinish(void);
extern void PL_FreeArenaPool(PLArenaPool *pool);
extern void PL_FinishArenaPool(PLArenaPool *pool);
extern void PL_CompactArenaPool(PLArenaPool *pool);
extern void * PL_ArenaAllocate(PLArenaPool *pool, PRUint32 nb);
extern void * PL_ArenaGrow(
PLArenaPool *pool, void *p, PRUint32 size, PRUint32 incr);
extern void PL_ArenaRelease(PLArenaPool *pool, char *mark);
# 46 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 2
typedef struct PLArena PLArena;
struct PLArena {
PLArena *next;
PRUword base;
PRUword limit;
PRUword avail;
};
# 79 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h"
struct PLArenaPool {
PLArena first;
PLArena *current;
PRUint32 arenasize;
PRUword mask;
};
# 43 "../../../../dist/public/security/secoid.h" 2
# 1 "../../../../dist/public/security/seccomon.h" 1
# 47 "../../../../dist/public/security/seccomon.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 1
# 48 "../../../../dist/public/security/seccomon.h" 2
# 58 "../../../../dist/public/security/seccomon.h"
# 1 "../../../../dist/public/security/secport.h" 1
# 86 "../../../../dist/public/security/secport.h"
# 1 "/usr/include/sys/types.h" 1 3
# 87 "../../../../dist/public/security/secport.h" 2
# 95 "../../../../dist/public/security/secport.h"
# 1 "/usr/include/ctype.h" 1 3
# 26 "/usr/include/ctype.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/ctype.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 28 "/usr/include/ctype.h" 2 3
# 40 "/usr/include/ctype.h" 3
# 1 "/usr/include/endian.h" 1 3
# 41 "/usr/include/ctype.h" 2 3
enum
{
_ISupper = (1 << (0)),
_ISlower = (1 << (1)),
_ISalpha = (1 << (2)),
_ISdigit = (1 << (3)),
_ISxdigit = (1 << (4)),
_ISspace = (1 << (5)),
_ISprint = (1 << (6)),
_ISgraph = (1 << (7)),
_ISblank = (1 << (8)),
_IScntrl = (1 << (9)),
_ISpunct = (1 << (10)),
_ISalnum = (1 << (11))
};
# 75 "/usr/include/ctype.h" 3
extern __const unsigned short int *__ctype_b;
extern __const __int32_t *__ctype_tolower;
extern __const __int32_t *__ctype_toupper;
# 91 "/usr/include/ctype.h" 3
extern int isalnum (int) ;
extern int isalpha (int) ;
extern int iscntrl (int) ;
extern int isdigit (int) ;
extern int islower (int) ;
extern int isgraph (int) ;
extern int isprint (int) ;
extern int ispunct (int) ;
extern int isspace (int) ;
extern int isupper (int) ;
extern int isxdigit (int) ;
extern int tolower (int __c) ;
extern int toupper (int __c) ;
extern int isascii (int __c) ;
extern int toascii (int __c) ;
extern int _toupper (int) ;
extern int _tolower (int) ;
# 153 "/usr/include/ctype.h" 3
extern __inline int
tolower (int __c)
{
return __c >= -128 && __c < 256 ? __ctype_tolower[__c] : __c;
}
extern __inline int
toupper (int __c)
{
return __c >= -128 && __c < 256 ? __ctype_toupper[__c] : __c;
}
# 96 "../../../../dist/public/security/secport.h" 2
# 1 "/usr/include/string.h" 1 3
# 26 "/usr/include/string.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/string.h" 2 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 34 "/usr/include/string.h" 2 3
extern void * memcpy (void * __restrict __dest, __const void * __restrict __src, size_t __n) ;
extern void * memmove (void * __dest, __const void * __src, size_t __n) ;
extern void * memccpy (void * __dest, __const void * __src, int __c, size_t __n) ;
extern void * memset (void * __s, int __c, size_t __n) ;
extern int memcmp (__const void * __s1, __const void * __s2, size_t __n) ;
extern void * memchr (__const void * __s, int __c, size_t __n) ;
# 71 "/usr/include/string.h" 3
extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) ;
extern char *strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) ;
extern char *strcat (char *__restrict __dest, __const char *__restrict __src) ;
extern char *strncat (char *__restrict __dest, __const char *__restrict __src, size_t __n) ;
extern int strcmp (__const char *__s1, __const char *__s2) ;
extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) ;
extern int strcoll (__const char *__s1, __const char *__s2) ;
extern size_t strxfrm (char *__restrict __dest, __const char *__restrict __src, size_t __n) ;
# 111 "/usr/include/string.h" 3
extern char *__strdup (__const char *__s) ;
extern char *strdup (__const char *__s) ;
# 146 "/usr/include/string.h" 3
extern char *strchr (__const char *__s, int __c) ;
extern char *strrchr (__const char *__s, int __c) ;
# 158 "/usr/include/string.h" 3
extern size_t strcspn (__const char *__s, __const char *__reject) ;
extern size_t strspn (__const char *__s, __const char *__accept) ;
extern char *strpbrk (__const char *__s, __const char *__accept) ;
extern char *strstr (__const char *__haystack, __const char *__needle) ;
# 176 "/usr/include/string.h" 3
extern char *strtok (char *__restrict __s, __const char *__restrict __delim) ;
extern char *__strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) ;
extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) ;
# 207 "/usr/include/string.h" 3
extern size_t strlen (__const char *__s) ;
# 217 "/usr/include/string.h" 3
extern char *strerror (int __errnum) ;
extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen) ;
extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) ;
extern void __bzero (void * __s, size_t __n) ;
extern void bcopy (__const void * __src, void * __dest, size_t __n) ;
extern void bzero (void * __s, size_t __n) ;
extern int bcmp (__const void * __s1, __const void * __s2, size_t __n) ;
extern char *index (__const char *__s, int __c) ;
extern char *rindex (__const char *__s, int __c) ;
extern int __ffs (int __i) __attribute__ ((const));
extern int ffs (int __i) __attribute__ ((const));
# 261 "/usr/include/string.h" 3
extern int __strcasecmp (__const char *__s1, __const char *__s2) ;
extern int strcasecmp (__const char *__s1, __const char *__s2) ;
extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) ;
# 282 "/usr/include/string.h" 3
extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) ;
# 343 "/usr/include/string.h" 3
# 1 "/usr/include/bits/string.h" 1 3
# 344 "/usr/include/string.h" 2 3
# 1 "/usr/include/bits/string2.h" 1 3
# 80 "/usr/include/bits/string2.h" 3
typedef struct { unsigned char __arr[2]; } __STRING2_COPY_ARR2 __attribute__ ((packed));
typedef struct { unsigned char __arr[3]; } __STRING2_COPY_ARR3 __attribute__ ((packed));
typedef struct { unsigned char __arr[4]; } __STRING2_COPY_ARR4 __attribute__ ((packed));
typedef struct { unsigned char __arr[5]; } __STRING2_COPY_ARR5 __attribute__ ((packed));
typedef struct { unsigned char __arr[6]; } __STRING2_COPY_ARR6 __attribute__ ((packed));
typedef struct { unsigned char __arr[7]; } __STRING2_COPY_ARR7 __attribute__ ((packed));
typedef struct { unsigned char __arr[8]; } __STRING2_COPY_ARR8 __attribute__ ((packed));
# 372 "/usr/include/bits/string2.h" 3
extern void * __rawmemchr (const void * __s, int __c);
# 478 "/usr/include/bits/string2.h" 3
extern __inline char *__strcpy_small (char *, __STRING2_COPY_ARR2,
__STRING2_COPY_ARR3,
__STRING2_COPY_ARR4,
__STRING2_COPY_ARR5,
__STRING2_COPY_ARR6,
__STRING2_COPY_ARR7,
__STRING2_COPY_ARR8, size_t);
extern __inline char *
__strcpy_small (char *__dest,
__STRING2_COPY_ARR2 __src2, __STRING2_COPY_ARR3 __src3,
__STRING2_COPY_ARR4 __src4, __STRING2_COPY_ARR5 __src5,
__STRING2_COPY_ARR6 __src6, __STRING2_COPY_ARR7 __src7,
__STRING2_COPY_ARR8 __src8, size_t __srclen)
{
union {
char __c;
__STRING2_COPY_ARR2 __sca2;
__STRING2_COPY_ARR3 __sca3;
__STRING2_COPY_ARR4 __sca4;
__STRING2_COPY_ARR5 __sca5;
__STRING2_COPY_ARR6 __sca6;
__STRING2_COPY_ARR7 __sca7;
__STRING2_COPY_ARR8 __sca8;
} *__u = (void *) __dest;
switch ((unsigned int) __srclen)
{
case 1:
__u->__c = '\0';
break;
case 2:
__extension__ __u->__sca2 = __src2;
break;
case 3:
__extension__ __u->__sca3 = __src3;
break;
case 4:
__extension__ __u->__sca4 = __src4;
break;
case 5:
__extension__ __u->__sca5 = __src5;
break;
case 6:
__extension__ __u->__sca6 = __src6;
break;
case 7:
__extension__ __u->__sca7 = __src7;
break;
case 8:
__extension__ __u->__sca8 = __src8;
break;
}
return __dest;
}
# 873 "/usr/include/bits/string2.h" 3
extern __inline size_t __strcspn_c1 (__const char *__s, char __reject);
extern __inline size_t
__strcspn_c1 (__const char *__s, char __reject)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject)
++__result;
return __result;
}
extern __inline size_t __strcspn_c2 (__const char *__s, char __reject1,
char __reject2);
extern __inline size_t
__strcspn_c2 (__const char *__s, char __reject1, char __reject2)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject1
&& __s[__result] != __reject2)
++__result;
return __result;
}
extern __inline size_t __strcspn_c3 (__const char *__s, char __reject1,
char __reject2, char __reject3);
extern __inline size_t
__strcspn_c3 (__const char *__s, char __reject1, char __reject2,
char __reject3)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject1
&& __s[__result] != __reject2 && __s[__result] != __reject3)
++__result;
return __result;
}
# 928 "/usr/include/bits/string2.h" 3
extern __inline size_t __strspn_c1 (__const char *__s, char __accept);
extern __inline size_t
__strspn_c1 (__const char *__s, char __accept)
{
register size_t __result = 0;
while (__s[__result] == __accept)
++__result;
return __result;
}
extern __inline size_t __strspn_c2 (__const char *__s, char __accept1,
char __accept2);
extern __inline size_t
__strspn_c2 (__const char *__s, char __accept1, char __accept2)
{
register size_t __result = 0;
while (__s[__result] == __accept1 || __s[__result] == __accept2)
++__result;
return __result;
}
extern __inline size_t __strspn_c3 (__const char *__s, char __accept1,
char __accept2, char __accept3);
extern __inline size_t
__strspn_c3 (__const char *__s, char __accept1, char __accept2, char __accept3)
{
register size_t __result = 0;
while (__s[__result] == __accept1 || __s[__result] == __accept2
|| __s[__result] == __accept3)
++__result;
return __result;
}
# 983 "/usr/include/bits/string2.h" 3
extern __inline char *__strpbrk_c2 (__const char *__s, char __accept1,
char __accept2);
extern __inline char *
__strpbrk_c2 (__const char *__s, char __accept1, char __accept2)
{
while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
++__s;
return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
extern __inline char *__strpbrk_c3 (__const char *__s, char __accept1,
char __accept2, char __accept3);
extern __inline char *
__strpbrk_c3 (__const char *__s, char __accept1, char __accept2,
char __accept3)
{
while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
&& *__s != __accept3)
++__s;
return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
# 1044 "/usr/include/bits/string2.h" 3
extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
extern __inline char *
__strtok_r_1c (char *__s, char __sep, char **__nextp)
{
char *__result;
if (__s == ((void *)0))
__s = *__nextp;
while (*__s == __sep)
++__s;
if (*__s == '\0')
__result = ((void *)0);
else
{
__result = __s;
while (*__s != '\0' && *__s != __sep)
++__s;
if (*__s == '\0')
*__nextp = __s;
else
{
*__s = '\0';
*__nextp = __s + 1;
}
}
return __result;
}
# 1094 "/usr/include/bits/string2.h" 3
extern __inline char *__strsep_1c (char **__s, char __reject);
extern __inline char *
__strsep_1c (char **__s, char __reject)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return *__s = ((void *)0);
if (*__retval == __reject)
*(*__s)++ = '\0';
else
if ((*__s = (__extension__ (__builtin_constant_p (__reject) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : strchr (__retval, __reject)))) != ((void *)0))
*(*__s)++ = '\0';
else
*__s = ((void *)0);
return __retval;
}
extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
extern __inline char *
__strsep_2c (char **__s, char __reject1, char __reject2)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return *__s = ((void *)0);
if (*__retval == __reject1 || *__retval == __reject2)
*(*__s)++ = '\0';
else
{
register char *__cp = __retval;
while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2)
++__cp;
if (*__cp != '\0')
{
*__s = __cp;
*(*__s)++ = '\0';
}
else
*__s = ((void *)0);
}
return __retval;
}
extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
char __reject3);
extern __inline char *
__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return *__s = ((void *)0);
if (*__retval == __reject1 || *__retval == __reject2
|| *__retval == __reject3)
*(*__s)++ = '\0';
else
{
register char *__cp = __retval;
while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2
&& *__cp != __reject3)
++__cp;
if (*__cp != '\0')
{
*__s = __cp;
*(*__s)++ = '\0';
}
else
*__s = ((void *)0);
}
return __retval;
}
extern __inline char *__strsep_g (char **__s, __const char *__reject);
extern __inline char *
__strsep_g (char **__s, __const char *__reject)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return ((void *)0);
if ((*__s = __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p (__reject) && ((size_t)(const void *)((__reject) + 1) - (size_t)(const void *)(__reject) == 1) ? ((__a0 = ((__const char *) (__reject))[0], __a0 == '\0') ? ((void *)0) : ((__a1 = ((__const char *) (__reject))[1], __a1 == '\0') ? (__extension__ (__builtin_constant_p (__a0) && (__a0) == '\0' ? (char *) __rawmemchr (__retval, __a0) : strchr (__retval, __a0))) : ((__a2 = ((__const char *) (__reject))[2], __a2 == '\0') ? __strpbrk_c2 (__retval, __a0, __a1) : (((__const char *) (__reject))[3] == '\0' ? __strpbrk_c3 (__retval, __a0, __a1, __a2) : strpbrk (__retval, __reject))))) : strpbrk (__retval, __reject)); })) != ((void *)0))
*(*__s)++ = '\0';
return __retval;
}
# 1187 "/usr/include/bits/string2.h" 3
# 1 "/usr/include/stdlib.h" 1 3
# 25 "/usr/include/stdlib.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/stdlib.h" 2 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 34 "/usr/include/stdlib.h" 2 3
# 474 "/usr/include/stdlib.h" 3
extern void * malloc (size_t __size) ;
extern void * calloc (size_t __nmemb, size_t __size) ;
# 1188 "/usr/include/bits/string2.h" 2 3
# 347 "/usr/include/string.h" 2 3
# 97 "../../../../dist/public/security/secport.h" 2
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 98 "../../../../dist/public/security/secport.h" 2
# 1 "/usr/include/stdlib.h" 1 3
# 25 "/usr/include/stdlib.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/stdlib.h" 2 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 34 "/usr/include/stdlib.h" 2 3
typedef struct
{
int quot;
int rem;
} div_t;
typedef struct
{
long int quot;
long int rem;
} ldiv_t;
# 80 "/usr/include/stdlib.h" 3
extern size_t __ctype_get_mb_cur_max (void) ;
extern double atof (__const char *__nptr) ;
extern int atoi (__const char *__nptr) ;
extern long int atol (__const char *__nptr) ;
__extension__ extern long long int atoll (__const char *__nptr) ;
extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) ;
# 109 "/usr/include/stdlib.h" 3
extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
__extension__
extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
# 132 "/usr/include/stdlib.h" 3
__extension__
extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
# 196 "/usr/include/stdlib.h" 3
extern double __strtod_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) ;
extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) ;
extern long double __strtold_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __group) ;
extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) ;
extern unsigned long int __strtoul_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) ;
__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) ;
__extension__
extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char ** __restrict __endptr, int __base, int __group) ;
# 242 "/usr/include/stdlib.h" 3
extern __inline double
strtod (__const char *__restrict __nptr, char **__restrict __endptr)
{
return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
strtol (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
strtoul (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoul_internal (__nptr, __endptr, __base, 0);
}
# 274 "/usr/include/stdlib.h" 3
__extension__ extern __inline long long int
strtoq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtouq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline long long int
strtoll (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtoull (__const char * __restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
extern __inline double
atof (__const char *__nptr)
{
return strtod (__nptr, (char **) ((void *)0));
}
extern __inline int
atoi (__const char *__nptr)
{
return (int) strtol (__nptr, (char **) ((void *)0), 10);
}
extern __inline long int
atol (__const char *__nptr)
{
return strtol (__nptr, (char **) ((void *)0), 10);
}
__extension__ extern __inline long long int
atoll (__const char *__nptr)
{
return strtoll (__nptr, (char **) ((void *)0), 10);
}
# 396 "/usr/include/stdlib.h" 3
extern int rand (void) ;
extern void srand (unsigned int __seed) ;
extern int rand_r (unsigned int *__seed) ;
extern double drand48 (void) ;
extern double erand48 (unsigned short int __xsubi[3]) ;
extern long int lrand48 (void) ;
extern long int nrand48 (unsigned short int __xsubi[3]) ;
extern long int mrand48 (void) ;
extern long int jrand48 (unsigned short int __xsubi[3]) ;
extern void srand48 (long int __seedval) ;
extern unsigned short int *seed48 (unsigned short int __seed16v[3]) ;
extern void lcong48 (unsigned short int __param[7]) ;
struct drand48_data
{
unsigned short int x[3];
unsigned short int a[3];
unsigned short int c;
unsigned short int old_x[3];
int init;
};
extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) ;
extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) ;
extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) ;
extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) ;
extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) ;
extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) ;
extern int srand48_r (long int __seedval, struct drand48_data *__buffer) ;
extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) ;
extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) ;
# 482 "/usr/include/stdlib.h" 3
extern void * realloc (void * __ptr, size_t __size) ;
extern void free (void * __ptr) ;
extern void cfree (void * __ptr) ;
# 1 "/usr/include/alloca.h" 1 3
# 22 "/usr/include/alloca.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/alloca.h" 2 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 26 "/usr/include/alloca.h" 2 3
extern void * alloca (size_t __size) ;
# 493 "/usr/include/stdlib.h" 2 3
extern void * valloc (size_t __size) ;
extern void abort (void) __attribute__ ((__noreturn__));
extern int atexit (void (*__func) (void)) ;
extern int __on_exit (void (*__func) (int __status, void * __arg), void * __arg) ;
extern int on_exit (void (*__func) (int __status, void * __arg), void * __arg) ;
extern void exit (int __status) __attribute__ ((__noreturn__));
# 530 "/usr/include/stdlib.h" 3
extern char *getenv (__const char *__name) ;
extern char *__secure_getenv (__const char *__name) ;
extern int putenv (char *__string) ;
extern int setenv (__const char *__name, __const char *__value, int __replace) ;
extern void unsetenv (__const char *__name) ;
extern int clearenv (void) ;
# 566 "/usr/include/stdlib.h" 3
extern char *mktemp (char *__template) ;
extern int mkstemp (char *__template) ;
extern int system (__const char *__command) ;
# 595 "/usr/include/stdlib.h" 3
extern char *realpath (__const char *__restrict __name, char *__restrict __resolved) ;
typedef int (*__compar_fn_t) (__const void *, __const void *);
# 612 "/usr/include/stdlib.h" 3
extern void * bsearch (__const void * __key, __const void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar);
extern void qsort (void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar);
extern int abs (int __x) __attribute__ ((__const__));
extern long int labs (long int __x) __attribute__ ((__const__));
# 634 "/usr/include/stdlib.h" 3
extern div_t div (int __numer, int __denom) __attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
__attribute__ ((__const__));
# 695 "/usr/include/stdlib.h" 3
extern int mblen (__const char *__s, size_t __n) ;
extern int mbtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) ;
extern int wctomb (char *__s, wchar_t __wchar) ;
extern size_t mbstowcs (wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) ;
extern size_t wcstombs (char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) ;
# 738 "/usr/include/stdlib.h" 3
extern void setkey (__const char *__key) ;
extern int grantpt (int __fd) ;
extern int unlockpt (int __fd) ;
extern char *ptsname (int __fd) ;
# 99 "../../../../dist/public/security/secport.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 1
# 100 "../../../../dist/public/security/secport.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prlog.h" 1
# 38 "/home/nisse/hack/mozilla/dist/include/nspr/prlog.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 1
# 39 "/home/nisse/hack/mozilla/dist/include/nspr/prlog.h" 2
# 135 "/home/nisse/hack/mozilla/dist/include/nspr/prlog.h"
typedef enum PRLogModuleLevel {
PR_LOG_NONE = 0,
PR_LOG_ALWAYS = 1,
PR_LOG_ERROR = 2,
PR_LOG_WARNING = 3,
PR_LOG_DEBUG = 4,
PR_LOG_NOTICE = PR_LOG_DEBUG,
PR_LOG_WARN = PR_LOG_WARNING,
PR_LOG_MIN = PR_LOG_DEBUG,
PR_LOG_MAX = PR_LOG_DEBUG
} PRLogModuleLevel;
typedef struct PRLogModuleInfo {
const char *name;
PRLogModuleLevel level;
struct PRLogModuleInfo *next;
} PRLogModuleInfo;
extern PRLogModuleInfo* PR_NewLogModule(const char *name);
extern PRBool PR_SetLogFile(const char *name);
extern void PR_SetLogBuffering(PRIntn buffer_size);
extern void PR_LogPrint(const char *fmt, ...);
extern void PR_LogFlush(void);
# 101 "../../../../dist/public/security/secport.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 102 "../../../../dist/public/security/secport.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h" 1
# 59 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 1
# 60 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h" 2
# 68 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern PRUint32
PL_strlen(const char *str);
# 79 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern PRUint32
PL_strnlen(const char *str, PRUint32 max);
# 90 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strcpy(char *dest, const char *src);
# 103 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strncpy(char *dest, const char *src, PRUint32 max);
# 126 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strncpyz(char *dest, const char *src, PRUint32 max);
# 140 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strdup(const char *s);
extern void
PL_strfree(char *s);
# 164 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strndup(const char *s, PRUint32 max);
# 176 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strcat(char *dst, const char *src);
# 191 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strncat(char *dst, const char *src, PRUint32 max);
# 205 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strcatn(char *dst, PRUint32 max, const char *src);
# 217 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern PRIntn
PL_strcmp(const char *a, const char *b);
# 231 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern PRIntn
PL_strncmp(const char *a, const char *b, PRUint32 max);
# 243 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern PRIntn
PL_strcasecmp(const char *a, const char *b);
# 255 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern PRIntn
PL_strncasecmp(const char *a, const char *b, PRUint32 max);
# 266 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strchr(const char *s, char c);
# 277 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strrchr(const char *s, char c);
# 289 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strnchr(const char *s, char c, PRUint32 n);
# 301 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strnrchr(const char *s, char c, PRUint32 n);
# 317 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strpbrk(const char *s, const char *list);
# 328 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strprbrk(const char *s, const char *list);
# 339 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strnpbrk(const char *s, const char *list, PRUint32 n);
# 350 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strnprbrk(const char *s, const char *list, PRUint32 n);
# 360 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strstr(const char *big, const char *little);
# 370 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strrstr(const char *big, const char *little);
# 381 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strnstr(const char *big, const char *little, PRUint32 n);
# 392 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strnrstr(const char *big, const char *little, PRUint32 max);
# 402 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strcasestr(const char *big, const char *little);
# 412 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strcaserstr(const char *big, const char *little);
# 423 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strncasestr(const char *big, const char *little, PRUint32 max);
# 434 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strncaserstr(const char *big, const char *little, PRUint32 max);
# 456 "/home/nisse/hack/mozilla/dist/include/nspr/plstr.h"
extern char *
PL_strtok_r(char *s1, const char *s2, char **lasts);
# 103 "../../../../dist/public/security/secport.h" 2
# 113 "../../../../dist/public/security/secport.h"
extern void *PORT_Alloc(size_t len);
extern void *PORT_Realloc(void *old, size_t len);
extern void *PORT_AllocBlock(size_t len);
extern void *PORT_ReallocBlock(void *old, size_t len);
extern void PORT_FreeBlock(void *ptr);
extern void *PORT_ZAlloc(size_t len);
extern void PORT_Free(void *ptr);
extern void PORT_ZFree(void *ptr, size_t len);
extern time_t PORT_Time(void);
extern void PORT_SetError(int value);
extern int PORT_GetError(void);
extern PLArenaPool *PORT_NewArena(unsigned long chunksize);
extern void *PORT_ArenaAlloc(PLArenaPool *arena, size_t size);
extern void *PORT_ArenaZAlloc(PLArenaPool *arena, size_t size);
extern void PORT_FreeArena(PLArenaPool *arena, PRBool zero);
extern void *PORT_ArenaGrow(PLArenaPool *arena, void *ptr,
size_t oldsize, size_t newsize);
extern void *PORT_ArenaMark(PLArenaPool *arena);
extern void PORT_ArenaRelease(PLArenaPool *arena, void *mark);
extern void PORT_ArenaUnmark(PLArenaPool *arena, void *mark);
extern char *PORT_ArenaStrdup(PLArenaPool *arena, char *str);
# 220 "../../../../dist/public/security/secport.h"
typedef PRBool ( * PORTCharConversionWSwapFunc) (PRBool toUnicode,
unsigned char *inBuf, unsigned int inBufLen,
unsigned char *outBuf, unsigned int maxOutBufLen,
unsigned int *outBufLen, PRBool swapBytes);
typedef PRBool ( * PORTCharConversionFunc) (PRBool toUnicode,
unsigned char *inBuf, unsigned int inBufLen,
unsigned char *outBuf, unsigned int maxOutBufLen,
unsigned int *outBufLen);
void PORT_SetUCS4_UTF8ConversionFunction(PORTCharConversionFunc convFunc);
void PORT_SetUCS2_ASCIIConversionFunction(PORTCharConversionWSwapFunc convFunc);
PRBool PORT_UCS4_UTF8Conversion(PRBool toUnicode, unsigned char *inBuf,
unsigned int inBufLen, unsigned char *outBuf,
unsigned int maxOutBufLen, unsigned int *outBufLen);
PRBool PORT_UCS2_ASCIIConversion(PRBool toUnicode, unsigned char *inBuf,
unsigned int inBufLen, unsigned char *outBuf,
unsigned int maxOutBufLen, unsigned int *outBufLen,
PRBool swapBytes);
void PORT_SetUCS2_UTF8ConversionFunction(PORTCharConversionFunc convFunc);
PRBool PORT_UCS2_UTF8Conversion(PRBool toUnicode, unsigned char *inBuf,
unsigned int inBufLen, unsigned char *outBuf,
unsigned int maxOutBufLen, unsigned int *outBufLen);
extern PRBool
sec_port_ucs4_utf8_conversion_function
(
PRBool toUnicode,
unsigned char *inBuf,
unsigned int inBufLen,
unsigned char *outBuf,
unsigned int maxOutBufLen,
unsigned int *outBufLen
);
extern PRBool
sec_port_ucs2_utf8_conversion_function
(
PRBool toUnicode,
unsigned char *inBuf,
unsigned int inBufLen,
unsigned char *outBuf,
unsigned int maxOutBufLen,
unsigned int *outBufLen
);
extern int NSS_PutEnv(const char * envVarName, const char * envValue);
# 59 "../../../../dist/public/security/seccomon.h" 2
typedef enum {
siBuffer = 0,
siClearDataBuffer = 1,
siCipherDataBuffer = 2,
siDERCertBuffer = 3,
siEncodedCertBuffer = 4,
siDERNameBuffer = 5,
siEncodedNameBuffer = 6,
siAsciiNameString = 7,
siAsciiString = 8,
siDEROID = 9
} SECItemType;
typedef struct SECItemStr SECItem;
struct SECItemStr {
SECItemType type;
unsigned char *data;
unsigned int len;
};
# 92 "../../../../dist/public/security/seccomon.h"
typedef enum _SECStatus {
SECWouldBlock = -2,
SECFailure = -1,
SECSuccess = 0
} SECStatus;
typedef enum _SECComparison {
SECLessThan = -1,
SECEqual = 0,
SECGreaterThan = 1
} SECComparison;
# 45 "../../../../dist/public/security/secoid.h" 2
# 1 "../../../../dist/public/security/secoidt.h" 1
# 42 "../../../../dist/public/security/secoidt.h"
# 1 "../../../../dist/public/security/secitem.h" 1
# 43 "../../../../dist/public/security/secitem.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 44 "../../../../dist/public/security/secitem.h" 2
# 1 "../../../../dist/public/security/seccomon.h" 1
# 45 "../../../../dist/public/security/secitem.h" 2
# 59 "../../../../dist/public/security/secitem.h"
extern SECItem *SECITEM_AllocItem(PLArenaPool *arena, SECItem *item,
unsigned int len);
# 70 "../../../../dist/public/security/secitem.h"
extern SECStatus SECITEM_ReallocItem(PLArenaPool *arena, SECItem *item,
unsigned int oldlen, unsigned int newlen);
extern SECComparison SECITEM_CompareItem(const SECItem *a, const SECItem *b);
extern PRBool SECITEM_ItemsAreEqual(const SECItem *a, const SECItem *b);
extern SECStatus SECITEM_CopyItem(PLArenaPool *arena, SECItem *to,
const SECItem *from);
extern SECItem *SECITEM_DupItem(const SECItem *from);
extern void SECITEM_FreeItem(SECItem *zap, PRBool freeit);
extern void SECITEM_ZfreeItem(SECItem *zap, PRBool freeit);
# 43 "../../../../dist/public/security/secoidt.h" 2
typedef struct SECOidDataStr SECOidData;
typedef struct SECAlgorithmIDStr SECAlgorithmID;
struct SECAlgorithmIDStr {
SECItem algorithm;
SECItem parameters;
};
# 62 "../../../../dist/public/security/secoidt.h"
typedef enum {
SEC_OID_UNKNOWN = 0,
SEC_OID_MD2 = 1,
SEC_OID_MD4 = 2,
SEC_OID_MD5 = 3,
SEC_OID_SHA1 = 4,
SEC_OID_RC2_CBC = 5,
SEC_OID_RC4 = 6,
SEC_OID_DES_EDE3_CBC = 7,
SEC_OID_RC5_CBC_PAD = 8,
SEC_OID_DES_ECB = 9,
SEC_OID_DES_CBC = 10,
SEC_OID_DES_OFB = 11,
SEC_OID_DES_CFB = 12,
SEC_OID_DES_MAC = 13,
SEC_OID_DES_EDE = 14,
SEC_OID_ISO_SHA_WITH_RSA_SIGNATURE = 15,
SEC_OID_PKCS1_RSA_ENCRYPTION = 16,
SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION = 17,
SEC_OID_PKCS1_MD4_WITH_RSA_ENCRYPTION = 18,
SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION = 19,
SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION = 20,
SEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC = 21,
SEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC = 22,
SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC = 23,
SEC_OID_PKCS7 = 24,
SEC_OID_PKCS7_DATA = 25,
SEC_OID_PKCS7_SIGNED_DATA = 26,
SEC_OID_PKCS7_ENVELOPED_DATA = 27,
SEC_OID_PKCS7_SIGNED_ENVELOPED_DATA = 28,
SEC_OID_PKCS7_DIGESTED_DATA = 29,
SEC_OID_PKCS7_ENCRYPTED_DATA = 30,
SEC_OID_PKCS9_EMAIL_ADDRESS = 31,
SEC_OID_PKCS9_UNSTRUCTURED_NAME = 32,
SEC_OID_PKCS9_CONTENT_TYPE = 33,
SEC_OID_PKCS9_MESSAGE_DIGEST = 34,
SEC_OID_PKCS9_SIGNING_TIME = 35,
SEC_OID_PKCS9_COUNTER_SIGNATURE = 36,
SEC_OID_PKCS9_CHALLENGE_PASSWORD = 37,
SEC_OID_PKCS9_UNSTRUCTURED_ADDRESS = 38,
SEC_OID_PKCS9_EXTENDED_CERTIFICATE_ATTRIBUTES = 39,
SEC_OID_PKCS9_SMIME_CAPABILITIES = 40,
SEC_OID_AVA_COMMON_NAME = 41,
SEC_OID_AVA_COUNTRY_NAME = 42,
SEC_OID_AVA_LOCALITY = 43,
SEC_OID_AVA_STATE_OR_PROVINCE = 44,
SEC_OID_AVA_ORGANIZATION_NAME = 45,
SEC_OID_AVA_ORGANIZATIONAL_UNIT_NAME = 46,
SEC_OID_AVA_DN_QUALIFIER = 47,
SEC_OID_AVA_DC = 48,
SEC_OID_NS_TYPE_GIF = 49,
SEC_OID_NS_TYPE_JPEG = 50,
SEC_OID_NS_TYPE_URL = 51,
SEC_OID_NS_TYPE_HTML = 52,
SEC_OID_NS_TYPE_CERT_SEQUENCE = 53,
SEC_OID_MISSI_KEA_DSS_OLD = 54,
SEC_OID_MISSI_DSS_OLD = 55,
SEC_OID_MISSI_KEA_DSS = 56,
SEC_OID_MISSI_DSS = 57,
SEC_OID_MISSI_KEA = 58,
SEC_OID_MISSI_ALT_KEA = 59,
SEC_OID_NS_CERT_EXT_NETSCAPE_OK = 60,
SEC_OID_NS_CERT_EXT_ISSUER_LOGO = 61,
SEC_OID_NS_CERT_EXT_SUBJECT_LOGO = 62,
SEC_OID_NS_CERT_EXT_CERT_TYPE = 63,
SEC_OID_NS_CERT_EXT_BASE_URL = 64,
SEC_OID_NS_CERT_EXT_REVOCATION_URL = 65,
SEC_OID_NS_CERT_EXT_CA_REVOCATION_URL = 66,
SEC_OID_NS_CERT_EXT_CA_CRL_URL = 67,
SEC_OID_NS_CERT_EXT_CA_CERT_URL = 68,
SEC_OID_NS_CERT_EXT_CERT_RENEWAL_URL = 69,
SEC_OID_NS_CERT_EXT_CA_POLICY_URL = 70,
SEC_OID_NS_CERT_EXT_HOMEPAGE_URL = 71,
SEC_OID_NS_CERT_EXT_ENTITY_LOGO = 72,
SEC_OID_NS_CERT_EXT_USER_PICTURE = 73,
SEC_OID_NS_CERT_EXT_SSL_SERVER_NAME = 74,
SEC_OID_NS_CERT_EXT_COMMENT = 75,
SEC_OID_NS_CERT_EXT_LOST_PASSWORD_URL = 76,
SEC_OID_NS_CERT_EXT_CERT_RENEWAL_TIME = 77,
SEC_OID_NS_KEY_USAGE_GOVT_APPROVED = 78,
SEC_OID_X509_SUBJECT_DIRECTORY_ATTR = 79,
SEC_OID_X509_SUBJECT_KEY_ID = 80,
SEC_OID_X509_KEY_USAGE = 81,
SEC_OID_X509_PRIVATE_KEY_USAGE_PERIOD = 82,
SEC_OID_X509_SUBJECT_ALT_NAME = 83,
SEC_OID_X509_ISSUER_ALT_NAME = 84,
SEC_OID_X509_BASIC_CONSTRAINTS = 85,
SEC_OID_X509_NAME_CONSTRAINTS = 86,
SEC_OID_X509_CRL_DIST_POINTS = 87,
SEC_OID_X509_CERTIFICATE_POLICIES = 88,
SEC_OID_X509_POLICY_MAPPINGS = 89,
SEC_OID_X509_POLICY_CONSTRAINTS = 90,
SEC_OID_X509_AUTH_KEY_ID = 91,
SEC_OID_X509_EXT_KEY_USAGE = 92,
SEC_OID_X509_AUTH_INFO_ACCESS = 93,
SEC_OID_X509_CRL_NUMBER = 94,
SEC_OID_X509_REASON_CODE = 95,
SEC_OID_X509_INVALID_DATE = 96,
SEC_OID_X500_RSA_ENCRYPTION = 97,
SEC_OID_RFC1274_UID = 98,
SEC_OID_RFC1274_MAIL = 99,
SEC_OID_PKCS12 = 100,
SEC_OID_PKCS12_MODE_IDS = 101,
SEC_OID_PKCS12_ESPVK_IDS = 102,
SEC_OID_PKCS12_BAG_IDS = 103,
SEC_OID_PKCS12_CERT_BAG_IDS = 104,
SEC_OID_PKCS12_OIDS = 105,
SEC_OID_PKCS12_PBE_IDS = 106,
SEC_OID_PKCS12_SIGNATURE_IDS = 107,
SEC_OID_PKCS12_ENVELOPING_IDS = 108,
SEC_OID_PKCS12_PKCS8_KEY_SHROUDING = 109,
SEC_OID_PKCS12_KEY_BAG_ID = 110,
SEC_OID_PKCS12_CERT_AND_CRL_BAG_ID = 111,
SEC_OID_PKCS12_SECRET_BAG_ID = 112,
SEC_OID_PKCS12_X509_CERT_CRL_BAG = 113,
SEC_OID_PKCS12_SDSI_CERT_BAG = 114,
SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC4 = 115,
SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC4 = 116,
SEC_OID_PKCS12_PBE_WITH_SHA1_AND_TRIPLE_DES_CBC = 117,
SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC = 118,
SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC = 119,
SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_128_BIT_RC4 = 120,
SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_40_BIT_RC4 = 121,
SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_TRIPLE_DES = 122,
SEC_OID_PKCS12_RSA_SIGNATURE_WITH_SHA1_DIGEST = 123,
SEC_OID_ANSIX9_DSA_SIGNATURE = 124,
SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST = 125,
SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST = 126,
SEC_OID_VERISIGN_USER_NOTICES = 127,
SEC_OID_PKIX_CPS_POINTER_QUALIFIER = 128,
SEC_OID_PKIX_USER_NOTICE_QUALIFIER = 129,
SEC_OID_PKIX_OCSP = 130,
SEC_OID_PKIX_OCSP_BASIC_RESPONSE = 131,
SEC_OID_PKIX_OCSP_NONCE = 132,
SEC_OID_PKIX_OCSP_CRL = 133,
SEC_OID_PKIX_OCSP_RESPONSE = 134,
SEC_OID_PKIX_OCSP_NO_CHECK = 135,
SEC_OID_PKIX_OCSP_ARCHIVE_CUTOFF = 136,
SEC_OID_PKIX_OCSP_SERVICE_LOCATOR = 137,
SEC_OID_PKIX_REGCTRL_REGTOKEN = 138,
SEC_OID_PKIX_REGCTRL_AUTHENTICATOR = 139,
SEC_OID_PKIX_REGCTRL_PKIPUBINFO = 140,
SEC_OID_PKIX_REGCTRL_PKI_ARCH_OPTIONS = 141,
SEC_OID_PKIX_REGCTRL_OLD_CERT_ID = 142,
SEC_OID_PKIX_REGCTRL_PROTOCOL_ENC_KEY = 143,
SEC_OID_PKIX_REGINFO_UTF8_PAIRS = 144,
SEC_OID_PKIX_REGINFO_CERT_REQUEST = 145,
SEC_OID_EXT_KEY_USAGE_SERVER_AUTH = 146,
SEC_OID_EXT_KEY_USAGE_CLIENT_AUTH = 147,
SEC_OID_EXT_KEY_USAGE_CODE_SIGN = 148,
SEC_OID_EXT_KEY_USAGE_EMAIL_PROTECT = 149,
SEC_OID_EXT_KEY_USAGE_TIME_STAMP = 150,
SEC_OID_OCSP_RESPONDER = 151,
SEC_OID_NETSCAPE_SMIME_KEA = 152,
SEC_OID_FORTEZZA_SKIPJACK = 153,
SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4 = 154,
SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4 = 155,
SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC = 156,
SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_2KEY_TRIPLE_DES_CBC = 157,
SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC = 158,
SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC = 159,
SEC_OID_PKCS12_SAFE_CONTENTS_ID = 160,
SEC_OID_PKCS12_PKCS8_SHROUDED_KEY_BAG_ID = 161,
SEC_OID_PKCS12_V1_KEY_BAG_ID = 162,
SEC_OID_PKCS12_V1_PKCS8_SHROUDED_KEY_BAG_ID = 163,
SEC_OID_PKCS12_V1_CERT_BAG_ID = 164,
SEC_OID_PKCS12_V1_CRL_BAG_ID = 165,
SEC_OID_PKCS12_V1_SECRET_BAG_ID = 166,
SEC_OID_PKCS12_V1_SAFE_CONTENTS_BAG_ID = 167,
SEC_OID_PKCS9_X509_CERT = 168,
SEC_OID_PKCS9_SDSI_CERT = 169,
SEC_OID_PKCS9_X509_CRL = 170,
SEC_OID_PKCS9_FRIENDLY_NAME = 171,
SEC_OID_PKCS9_LOCAL_KEY_ID = 172,
SEC_OID_PKCS12_KEY_USAGE = 173,
SEC_OID_X942_DIFFIE_HELMAN_KEY = 174,
SEC_OID_NETSCAPE_NICKNAME = 175,
SEC_OID_NETSCAPE_RECOVERY_REQUEST = 176,
SEC_OID_CERT_RENEWAL_LOCATOR = 177,
SEC_OID_NS_CERT_EXT_SCOPE_OF_USE = 178,
SEC_OID_CMS_EPHEMERAL_STATIC_DIFFIE_HELLMAN = 179,
SEC_OID_CMS_3DES_KEY_WRAP = 180,
SEC_OID_CMS_RC2_KEY_WRAP = 181,
SEC_OID_SMIME_ENCRYPTION_KEY_PREFERENCE = 182,
SEC_OID_TOTAL
} SECOidTag;
typedef enum {
INVALID_CERT_EXTENSION = 0,
UNSUPPORTED_CERT_EXTENSION = 1,
SUPPORTED_CERT_EXTENSION = 2
} SECSupportExtenTag;
struct SECOidDataStr {
SECItem oid;
SECOidTag offset;
char *desc;
unsigned long mechanism;
SECSupportExtenTag supportedExtension;
};
# 46 "../../../../dist/public/security/secoid.h" 2
# 1 "../../../../dist/public/security/secasn1t.h" 1
# 53 "../../../../dist/public/security/secasn1t.h"
typedef struct sec_ASN1Template_struct {
unsigned long kind;
unsigned long offset;
# 76 "../../../../dist/public/security/secasn1t.h"
const void *sub;
unsigned int size;
} SEC_ASN1Template;
# 200 "../../../../dist/public/security/secasn1t.h"
typedef const SEC_ASN1Template * SEC_ASN1TemplateChooser(void *arg, PRBool enc);
typedef SEC_ASN1TemplateChooser * SEC_ASN1TemplateChooserPtr;
# 226 "../../../../dist/public/security/secasn1t.h"
typedef struct sec_DecoderContext_struct SEC_ASN1DecoderContext;
typedef struct sec_EncoderContext_struct SEC_ASN1EncoderContext;
typedef enum {
SEC_ASN1_Identifier = 0,
SEC_ASN1_Length = 1,
SEC_ASN1_Contents = 2,
SEC_ASN1_EndOfContents = 3
} SEC_ASN1EncodingPart;
typedef void (* SEC_ASN1NotifyProc)(void *arg, PRBool before,
void *dest, int real_depth);
# 283 "../../../../dist/public/security/secasn1t.h"
typedef void (* SEC_ASN1WriteProc)(void *arg,
const char *data, unsigned long len,
int depth, SEC_ASN1EncodingPart data_kind);
# 47 "../../../../dist/public/security/secoid.h" 2
extern const SEC_ASN1Template SECOID_AlgorithmIDTemplate[];
extern const SEC_ASN1Template * NSS_Get_SECOID_AlgorithmIDTemplate (void *arg, PRBool enc);
extern SECOidData *SECOID_FindOID(SECItem *oid);
extern SECOidTag SECOID_FindOIDTag(SECItem *oid);
extern SECOidData *SECOID_FindOIDByTag(SECOidTag tagnum);
extern SECOidData *SECOID_FindOIDByMechanism(unsigned long mechanism);
# 75 "../../../../dist/public/security/secoid.h"
extern SECStatus SECOID_SetAlgorithmID(PLArenaPool *arena, SECAlgorithmID *aid,
SECOidTag tag, SECItem *params);
extern SECStatus SECOID_CopyAlgorithmID(PLArenaPool *arena, SECAlgorithmID *dest,
SECAlgorithmID *src);
extern SECOidTag SECOID_GetAlgorithmTag(SECAlgorithmID *aid);
extern void SECOID_DestroyAlgorithmID(SECAlgorithmID *aid, PRBool freeit);
extern SECComparison SECOID_CompareAlgorithmID(SECAlgorithmID *a,
SECAlgorithmID *b);
extern PRBool SECOID_KnownCertExtenOID (SECItem *extenOid);
extern const char *SECOID_FindOIDTagDescription(SECOidTag tagnum);
# 38 "p12t.h" 2
# 1 "../../../../dist/public/security/key.h" 1
# 41 "../../../../dist/public/security/key.h"
# 1 "../../../../dist/public/security/keyhi.h" 1
# 42 "../../../../dist/public/security/keyhi.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 43 "../../../../dist/public/security/keyhi.h" 2
# 1 "../../../../dist/public/security/seccomon.h" 1
# 45 "../../../../dist/public/security/keyhi.h" 2
# 1 "../../../../dist/public/security/secoidt.h" 1
# 46 "../../../../dist/public/security/keyhi.h" 2
# 1 "../../../../dist/public/security/secdert.h" 1
# 43 "../../../../dist/public/security/secdert.h"
typedef struct DERTemplateStr DERTemplate;
# 53 "../../../../dist/public/security/secdert.h"
struct DERTemplateStr {
unsigned long kind;
unsigned int offset;
DERTemplate *sub;
# 82 "../../../../dist/public/security/secdert.h"
unsigned long arg;
};
# 157 "../../../../dist/public/security/secdert.h"
extern DERTemplate SECAnyTemplate[];
extern DERTemplate SECBitStringTemplate[];
extern DERTemplate SECBooleanTemplate[];
extern DERTemplate SECIA5StringTemplate[];
extern DERTemplate SECIntegerTemplate[];
extern DERTemplate SECNullTemplate[];
extern DERTemplate SECObjectIDTemplate[];
extern DERTemplate SECOctetStringTemplate[];
extern DERTemplate SECPrintableStringTemplate[];
extern DERTemplate SECT61StringTemplate[];
extern DERTemplate SECUTCTimeTemplate[];
extern DERTemplate SECAlgorithmIDTemplate[];
# 47 "../../../../dist/public/security/keyhi.h" 2
# 1 "../../../../dist/public/security/keythi.h" 1
# 36 "../../../../dist/public/security/keythi.h"
# 1 "../../../../dist/public/security/keytlow.h" 1
# 36 "../../../../dist/public/security/keytlow.h"
# 1 "../../../../dist/public/security/blapit.h" 1
# 41 "../../../../dist/public/security/blapit.h"
# 1 "../../../../dist/public/security/seccomon.h" 1
# 42 "../../../../dist/public/security/blapit.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 43 "../../../../dist/public/security/blapit.h" 2
# 115 "../../../../dist/public/security/blapit.h"
struct DESContextStr ;
struct RC2ContextStr ;
struct RC4ContextStr ;
struct RC5ContextStr ;
struct AESContextStr ;
struct MD2ContextStr ;
struct MD5ContextStr ;
struct SHA1ContextStr ;
typedef struct DESContextStr DESContext;
typedef struct RC2ContextStr RC2Context;
typedef struct RC4ContextStr RC4Context;
typedef struct RC5ContextStr RC5Context;
typedef struct AESContextStr AESContext;
typedef struct MD2ContextStr MD2Context;
typedef struct MD5ContextStr MD5Context;
typedef struct SHA1ContextStr SHA1Context;
struct RSAPublicKeyStr {
PLArenaPool * arena;
SECItem modulus;
SECItem publicExponent;
};
typedef struct RSAPublicKeyStr RSAPublicKey;
struct RSAPrivateKeyStr {
PLArenaPool * arena;
SECItem version;
SECItem modulus;
SECItem publicExponent;
SECItem privateExponent;
SECItem prime1;
SECItem prime2;
SECItem exponent1;
SECItem exponent2;
SECItem coefficient;
};
typedef struct RSAPrivateKeyStr RSAPrivateKey;
struct PQGParamsStr {
PLArenaPool *arena;
SECItem prime;
SECItem subPrime;
SECItem base;
};
typedef struct PQGParamsStr PQGParams;
struct PQGVerifyStr {
PLArenaPool * arena;
unsigned int counter;
SECItem seed;
SECItem h;
};
typedef struct PQGVerifyStr PQGVerify;
struct DSAPublicKeyStr {
PQGParams params;
SECItem publicValue;
};
typedef struct DSAPublicKeyStr DSAPublicKey;
struct DSAPrivateKeyStr {
PQGParams params;
SECItem publicValue;
SECItem privateValue;
};
typedef struct DSAPrivateKeyStr DSAPrivateKey;
struct DHParamsStr {
PLArenaPool * arena;
SECItem prime;
SECItem base;
};
typedef struct DHParamsStr DHParams;
struct DHPublicKeyStr {
PLArenaPool * arena;
SECItem prime;
SECItem base;
SECItem publicValue;
};
typedef struct DHPublicKeyStr DHPublicKey;
struct DHPrivateKeyStr {
PLArenaPool * arena;
SECItem prime;
SECItem base;
SECItem publicValue;
SECItem privateValue;
};
typedef struct DHPrivateKeyStr DHPrivateKey;
# 37 "../../../../dist/public/security/keytlow.h" 2
typedef enum {
nullKey = 0,
rsaKey = 1,
dsaKey = 2,
fortezzaKey = 3,
dhKey = 4,
keaKey = 5
} KeyType;
struct FortezzaPublicKeyStr {
int KEAversion;
int DSSversion;
unsigned char KMID[8];
SECItem clearance;
SECItem KEApriviledge;
SECItem DSSpriviledge;
SECItem KEAKey;
SECItem DSSKey;
PQGParams params;
PQGParams keaParams;
};
typedef struct FortezzaPublicKeyStr FortezzaPublicKey;
struct FortezzaPrivateKeyStr {
int certificate;
unsigned char serial[8];
int socket;
};
typedef struct FortezzaPrivateKeyStr FortezzaPrivateKey;
struct SECKEYLowPublicKeyStr {
PLArenaPool *arena;
KeyType keyType ;
union {
RSAPublicKey rsa;
DSAPublicKey dsa;
DHPublicKey dh;
} u;
};
typedef struct SECKEYLowPublicKeyStr SECKEYLowPublicKey;
struct SECKEYLowPrivateKeyStr {
PLArenaPool *arena;
KeyType keyType;
union {
RSAPrivateKey rsa;
DSAPrivateKey dsa;
DHPrivateKey dh;
FortezzaPrivateKey fortezza;
} u;
};
typedef struct SECKEYLowPrivateKeyStr SECKEYLowPrivateKey;
# 37 "../../../../dist/public/security/keythi.h" 2
# 1 "../../../../dist/public/security/keytboth.h" 1
# 36 "../../../../dist/public/security/keytboth.h"
# 1 "../../../../dist/public/security/blapit.h" 1
# 37 "../../../../dist/public/security/keytboth.h" 2
# 1 "../../../../dist/public/security/secoidt.h" 1
# 38 "../../../../dist/public/security/keytboth.h" 2
struct SECKEYAttributeStr {
SECItem attrType;
SECItem **attrValue;
};
typedef struct SECKEYAttributeStr SECKEYAttribute;
struct SECKEYPrivateKeyInfoStr {
PLArenaPool *arena;
SECItem version;
SECAlgorithmID algorithm;
SECItem privateKey;
SECKEYAttribute **attributes;
};
typedef struct SECKEYPrivateKeyInfoStr SECKEYPrivateKeyInfo;
struct SECKEYEncryptedPrivateKeyInfoStr {
PLArenaPool *arena;
SECAlgorithmID algorithm;
SECItem encryptedData;
};
typedef struct SECKEYEncryptedPrivateKeyInfoStr SECKEYEncryptedPrivateKeyInfo;
struct DiffPQGParamsStr {
PQGParams DiffKEAParams;
PQGParams DiffDSAParams;
};
typedef struct DiffPQGParamsStr DiffPQGParams;
struct PQGDualParamsStr {
PQGParams CommParams;
DiffPQGParams DiffParams;
};
typedef struct PQGDualParamsStr PQGDualParams;
struct KEAParamsStr {
PLArenaPool *arena;
SECItem hash;
};
typedef struct KEAParamsStr KEAParams;
struct KEAPublicKeyStr {
KEAParams params;
SECItem publicValue;
};
typedef struct KEAPublicKeyStr KEAPublicKey;
# 38 "../../../../dist/public/security/keythi.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 39 "../../../../dist/public/security/keythi.h" 2
# 1 "../../../../dist/public/security/pkcs11t.h" 1
# 56 "../../../../dist/public/security/pkcs11t.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 1
# 57 "../../../../dist/public/security/pkcs11t.h" 2
# 65 "../../../../dist/public/security/pkcs11t.h"
typedef unsigned char CK_BYTE;
typedef CK_BYTE CK_CHAR;
typedef CK_BYTE CK_BBOOL;
typedef unsigned long int CK_ULONG;
typedef long int CK_LONG;
typedef CK_ULONG CK_FLAGS;
typedef CK_BYTE * CK_BYTE_PTR;
typedef CK_CHAR * CK_CHAR_PTR;
typedef CK_ULONG * CK_ULONG_PTR;
typedef void * CK_VOID_PTR;
typedef CK_VOID_PTR * CK_VOID_PTR_PTR;
# 104 "../../../../dist/public/security/pkcs11t.h"
# 1 "../../../../dist/public/security/pkcs11p.h" 1
# 105 "../../../../dist/public/security/pkcs11t.h" 2
typedef struct CK_VERSION {
CK_BYTE major;
CK_BYTE minor;
} CK_VERSION;
typedef CK_VERSION * CK_VERSION_PTR;
typedef struct CK_INFO {
CK_VERSION cryptokiVersion;
CK_CHAR manufacturerID[32];
CK_FLAGS flags;
CK_CHAR libraryDescription[32];
CK_VERSION libraryVersion;
} CK_INFO;
typedef CK_INFO * CK_INFO_PTR;
typedef CK_ULONG CK_NOTIFICATION;
typedef CK_ULONG CK_SLOT_ID;
typedef CK_SLOT_ID * CK_SLOT_ID_PTR;
typedef struct CK_SLOT_INFO {
CK_CHAR slotDescription[64];
CK_CHAR manufacturerID[32];
CK_FLAGS flags;
CK_VERSION hardwareVersion;
CK_VERSION firmwareVersion;
} CK_SLOT_INFO;
# 158 "../../../../dist/public/security/pkcs11t.h"
typedef CK_SLOT_INFO * CK_SLOT_INFO_PTR;
typedef struct CK_TOKEN_INFO {
CK_CHAR label[32];
CK_CHAR manufacturerID[32];
CK_CHAR model[16];
CK_CHAR serialNumber[16];
CK_FLAGS flags;
CK_ULONG ulMaxSessionCount;
CK_ULONG ulSessionCount;
CK_ULONG ulMaxRwSessionCount;
CK_ULONG ulRwSessionCount;
CK_ULONG ulMaxPinLen;
CK_ULONG ulMinPinLen;
CK_ULONG ulTotalPublicMemory;
CK_ULONG ulFreePublicMemory;
CK_ULONG ulTotalPrivateMemory;
CK_ULONG ulFreePrivateMemory;
CK_VERSION hardwareVersion;
CK_VERSION firmwareVersion;
CK_CHAR utcTime[16];
} CK_TOKEN_INFO;
# 226 "../../../../dist/public/security/pkcs11t.h"
typedef CK_TOKEN_INFO * CK_TOKEN_INFO_PTR;
typedef CK_ULONG CK_SESSION_HANDLE;
typedef CK_SESSION_HANDLE * CK_SESSION_HANDLE_PTR;
typedef CK_ULONG CK_USER_TYPE;
# 249 "../../../../dist/public/security/pkcs11t.h"
typedef CK_ULONG CK_STATE;
# 258 "../../../../dist/public/security/pkcs11t.h"
typedef struct CK_SESSION_INFO {
CK_SLOT_ID slotID;
CK_STATE state;
CK_FLAGS flags;
CK_ULONG ulDeviceError;
} CK_SESSION_INFO;
typedef CK_SESSION_INFO * CK_SESSION_INFO_PTR;
typedef CK_ULONG CK_OBJECT_HANDLE;
typedef CK_OBJECT_HANDLE * CK_OBJECT_HANDLE_PTR;
typedef CK_ULONG CK_OBJECT_CLASS;
# 299 "../../../../dist/public/security/pkcs11t.h"
typedef CK_OBJECT_CLASS * CK_OBJECT_CLASS_PTR;
typedef CK_ULONG CK_KEY_TYPE;
# 347 "../../../../dist/public/security/pkcs11t.h"
typedef CK_ULONG CK_CERTIFICATE_TYPE;
# 358 "../../../../dist/public/security/pkcs11t.h"
typedef CK_ULONG CK_ATTRIBUTE_TYPE;
# 413 "../../../../dist/public/security/pkcs11t.h"
typedef struct CK_ATTRIBUTE {
CK_ATTRIBUTE_TYPE type;
CK_VOID_PTR pValue;
CK_ULONG ulValueLen;
} CK_ATTRIBUTE;
typedef CK_ATTRIBUTE * CK_ATTRIBUTE_PTR;
typedef struct CK_DATE{
CK_CHAR year[4];
CK_CHAR month[2];
CK_CHAR day[2];
} CK_DATE;
typedef CK_ULONG CK_MECHANISM_TYPE;
# 626 "../../../../dist/public/security/pkcs11t.h"
typedef CK_MECHANISM_TYPE * CK_MECHANISM_TYPE_PTR;
typedef struct CK_MECHANISM {
CK_MECHANISM_TYPE mechanism;
CK_VOID_PTR pParameter;
CK_ULONG ulParameterLen;
} CK_MECHANISM;
typedef CK_MECHANISM * CK_MECHANISM_PTR;
typedef struct CK_MECHANISM_INFO {
CK_ULONG ulMinKeySize;
CK_ULONG ulMaxKeySize;
CK_FLAGS flags;
} CK_MECHANISM_INFO;
# 675 "../../../../dist/public/security/pkcs11t.h"
typedef CK_MECHANISM_INFO * CK_MECHANISM_INFO_PTR;
typedef CK_ULONG CK_RV;
# 809 "../../../../dist/public/security/pkcs11t.h"
typedef CK_RV ( * CK_NOTIFY)(
CK_SESSION_HANDLE hSession,
CK_NOTIFICATION event,
CK_VOID_PTR pApplication
);
typedef struct CK_FUNCTION_LIST CK_FUNCTION_LIST;
typedef CK_FUNCTION_LIST * CK_FUNCTION_LIST_PTR;
typedef CK_FUNCTION_LIST_PTR * CK_FUNCTION_LIST_PTR_PTR;
typedef CK_RV ( * CK_CREATEMUTEX)(
CK_VOID_PTR_PTR ppMutex
);
typedef CK_RV ( * CK_DESTROYMUTEX)(
CK_VOID_PTR pMutex
);
typedef CK_RV ( * CK_LOCKMUTEX)(
CK_VOID_PTR pMutex
);
typedef CK_RV ( * CK_UNLOCKMUTEX)(
CK_VOID_PTR pMutex
);
typedef struct CK_C_INITIALIZE_ARGS {
CK_CREATEMUTEX CreateMutex;
CK_DESTROYMUTEX DestroyMutex;
CK_LOCKMUTEX LockMutex;
CK_UNLOCKMUTEX UnlockMutex;
CK_FLAGS flags;
CK_VOID_PTR pReserved;
} CK_C_INITIALIZE_ARGS;
typedef CK_C_INITIALIZE_ARGS * CK_C_INITIALIZE_ARGS_PTR;
# 883 "../../../../dist/public/security/pkcs11t.h"
typedef struct CK_KEA_DERIVE_PARAMS {
CK_BBOOL isSender;
CK_ULONG ulRandomLen;
CK_BYTE_PTR pRandomA;
CK_BYTE_PTR pRandomB;
CK_ULONG ulPublicDataLen;
CK_BYTE_PTR pPublicData;
} CK_KEA_DERIVE_PARAMS;
typedef CK_KEA_DERIVE_PARAMS * CK_KEA_DERIVE_PARAMS_PTR;
typedef CK_ULONG CK_RC2_PARAMS;
typedef CK_RC2_PARAMS * CK_RC2_PARAMS_PTR;
typedef struct CK_RC2_CBC_PARAMS {
CK_ULONG ulEffectiveBits;
CK_BYTE iv[8];
} CK_RC2_CBC_PARAMS;
typedef CK_RC2_CBC_PARAMS * CK_RC2_CBC_PARAMS_PTR;
typedef struct CK_RC2_MAC_GENERAL_PARAMS {
CK_ULONG ulEffectiveBits;
CK_ULONG ulMacLength;
} CK_RC2_MAC_GENERAL_PARAMS;
typedef CK_RC2_MAC_GENERAL_PARAMS * CK_RC2_MAC_GENERAL_PARAMS_PTR;
typedef struct CK_RC5_PARAMS {
CK_ULONG ulWordsize;
CK_ULONG ulRounds;
} CK_RC5_PARAMS;
typedef CK_RC5_PARAMS * CK_RC5_PARAMS_PTR;
typedef struct CK_RC5_CBC_PARAMS {
CK_ULONG ulWordsize;
CK_ULONG ulRounds;
CK_BYTE_PTR pIv;
CK_ULONG ulIvLen;
} CK_RC5_CBC_PARAMS;
typedef CK_RC5_CBC_PARAMS * CK_RC5_CBC_PARAMS_PTR;
typedef struct CK_RC5_MAC_GENERAL_PARAMS {
CK_ULONG ulWordsize;
CK_ULONG ulRounds;
CK_ULONG ulMacLength;
} CK_RC5_MAC_GENERAL_PARAMS;
typedef CK_RC5_MAC_GENERAL_PARAMS * CK_RC5_MAC_GENERAL_PARAMS_PTR;
typedef CK_ULONG CK_MAC_GENERAL_PARAMS;
typedef CK_MAC_GENERAL_PARAMS * CK_MAC_GENERAL_PARAMS_PTR;
typedef struct CK_SKIPJACK_PRIVATE_WRAP_PARAMS {
CK_ULONG ulPasswordLen;
CK_BYTE_PTR pPassword;
CK_ULONG ulPublicDataLen;
CK_BYTE_PTR pPublicData;
CK_ULONG ulPAndGLen;
CK_ULONG ulQLen;
CK_ULONG ulRandomLen;
CK_BYTE_PTR pRandomA;
CK_BYTE_PTR pPrimeP;
CK_BYTE_PTR pBaseG;
CK_BYTE_PTR pSubprimeQ;
} CK_SKIPJACK_PRIVATE_WRAP_PARAMS;
typedef CK_SKIPJACK_PRIVATE_WRAP_PARAMS * CK_SKIPJACK_PRIVATE_WRAP_PTR;
typedef struct CK_SKIPJACK_RELAYX_PARAMS {
CK_ULONG ulOldWrappedXLen;
CK_BYTE_PTR pOldWrappedX;
CK_ULONG ulOldPasswordLen;
CK_BYTE_PTR pOldPassword;
CK_ULONG ulOldPublicDataLen;
CK_BYTE_PTR pOldPublicData;
CK_ULONG ulOldRandomLen;
CK_BYTE_PTR pOldRandomA;
CK_ULONG ulNewPasswordLen;
CK_BYTE_PTR pNewPassword;
CK_ULONG ulNewPublicDataLen;
CK_BYTE_PTR pNewPublicData;
CK_ULONG ulNewRandomLen;
CK_BYTE_PTR pNewRandomA;
} CK_SKIPJACK_RELAYX_PARAMS;
typedef CK_SKIPJACK_RELAYX_PARAMS * CK_SKIPJACK_RELAYX_PARAMS_PTR;
typedef struct CK_PBE_PARAMS {
CK_CHAR_PTR pInitVector;
CK_CHAR_PTR pPassword;
CK_ULONG ulPasswordLen;
CK_CHAR_PTR pSalt;
CK_ULONG ulSaltLen;
CK_ULONG ulIteration;
} CK_PBE_PARAMS;
typedef CK_PBE_PARAMS * CK_PBE_PARAMS_PTR;
typedef struct CK_KEY_WRAP_SET_OAEP_PARAMS {
CK_BYTE bBC;
CK_BYTE_PTR pX;
CK_ULONG ulXLen;
} CK_KEY_WRAP_SET_OAEP_PARAMS;
typedef CK_KEY_WRAP_SET_OAEP_PARAMS * CK_KEY_WRAP_SET_OAEP_PARAMS_PTR;
typedef struct CK_SSL3_RANDOM_DATA {
CK_BYTE_PTR pClientRandom;
CK_ULONG ulClientRandomLen;
CK_BYTE_PTR pServerRandom;
CK_ULONG ulServerRandomLen;
} CK_SSL3_RANDOM_DATA;
typedef struct CK_SSL3_MASTER_KEY_DERIVE_PARAMS {
CK_SSL3_RANDOM_DATA RandomInfo;
CK_VERSION_PTR pVersion;
} CK_SSL3_MASTER_KEY_DERIVE_PARAMS;
typedef struct CK_SSL3_MASTER_KEY_DERIVE_PARAMS * CK_SSL3_MASTER_KEY_DERIVE_PARAMS_PTR;
typedef struct CK_SSL3_KEY_MAT_OUT {
CK_OBJECT_HANDLE hClientMacSecret;
CK_OBJECT_HANDLE hServerMacSecret;
CK_OBJECT_HANDLE hClientKey;
CK_OBJECT_HANDLE hServerKey;
CK_BYTE_PTR pIVClient;
CK_BYTE_PTR pIVServer;
} CK_SSL3_KEY_MAT_OUT;
typedef CK_SSL3_KEY_MAT_OUT * CK_SSL3_KEY_MAT_OUT_PTR;
typedef struct CK_SSL3_KEY_MAT_PARAMS {
CK_ULONG ulMacSizeInBits;
CK_ULONG ulKeySizeInBits;
CK_ULONG ulIVSizeInBits;
CK_BBOOL bIsExport;
CK_SSL3_RANDOM_DATA RandomInfo;
CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial;
} CK_SSL3_KEY_MAT_PARAMS;
typedef CK_SSL3_KEY_MAT_PARAMS * CK_SSL3_KEY_MAT_PARAMS_PTR;
typedef struct CK_KEY_DERIVATION_STRING_DATA {
CK_BYTE_PTR pData;
CK_ULONG ulLen;
} CK_KEY_DERIVATION_STRING_DATA;
typedef CK_KEY_DERIVATION_STRING_DATA * CK_KEY_DERIVATION_STRING_DATA_PTR;
# 1099 "../../../../dist/public/security/pkcs11t.h"
typedef CK_ULONG CK_EXTRACT_PARAMS;
typedef CK_EXTRACT_PARAMS * CK_EXTRACT_PARAMS_PTR;
# 1129 "../../../../dist/public/security/pkcs11t.h"
# 1 "../../../../dist/public/security/pkcs11u.h" 1
# 1130 "../../../../dist/public/security/pkcs11t.h" 2
# 40 "../../../../dist/public/security/keythi.h" 2
# 1 "../../../../dist/public/security/secmodt.h" 1
# 40 "../../../../dist/public/security/secmodt.h"
typedef struct SECMODModuleStr SECMODModule;
typedef struct SECMODModuleListStr SECMODModuleList;
typedef struct SECMODListLockStr SECMODListLock;
typedef struct PK11SlotInfoStr PK11SlotInfo;
typedef struct PK11PreSlotInfoStr PK11PreSlotInfo;
typedef struct PK11SymKeyStr PK11SymKey;
typedef struct PK11ContextStr PK11Context;
typedef struct PK11SlotListStr PK11SlotList;
typedef struct PK11SlotListElementStr PK11SlotListElement;
typedef struct PK11RSAGenParamsStr PK11RSAGenParams;
typedef unsigned long SECMODModuleID;
typedef struct PK11DefaultArrayEntryStr PK11DefaultArrayEntry;
struct SECMODModuleStr {
PLArenaPool *arena;
PRBool internal;
PRBool loaded;
PRBool isFIPS;
char *dllName;
char *commonName;
void *library;
void *functionList;
void *refLock;
int refCount;
PK11SlotInfo **slots;
int slotCount;
PK11PreSlotInfo *slotInfo;
int slotInfoCount;
SECMODModuleID moduleID;
PRBool isThreadSafe;
unsigned long ssl[2];
};
struct SECMODModuleListStr {
SECMODModuleList *next;
SECMODModule *module;
};
struct PK11SlotListStr {
PK11SlotListElement *head;
PK11SlotListElement *tail;
void *lock;
};
struct PK11SlotListElementStr {
PK11SlotListElement *next;
PK11SlotListElement *prev;
PK11SlotInfo *slot;
int refCount;
};
struct PK11RSAGenParamsStr {
int keySizeInBits;
unsigned long pe;
};
typedef enum {
PK11CertListUnique = 0,
PK11CertListUser = 1,
PK11CertListRootUnique = 2,
PK11CertListCA = 3
} PK11CertListType;
struct PK11DefaultArrayEntryStr {
char *name;
unsigned long flag;
unsigned long mechanism;
};
# 159 "../../../../dist/public/security/secmodt.h"
typedef enum {
PK11_OriginNULL = 0,
PK11_OriginDerive = 1,
PK11_OriginGenerated = 2,
PK11_OriginFortezzaHack = 3,
PK11_OriginUnwrap = 4
} PK11Origin;
typedef enum {
PK11_DIS_NONE = 0,
PK11_DIS_USER_SELECTED = 1,
PK11_DIS_COULD_NOT_INIT_TOKEN = 2,
PK11_DIS_TOKEN_VERIFY_FAILED = 3,
PK11_DIS_TOKEN_NOT_PRESENT = 4
} PK11DisableReasons;
typedef char *(*PK11PasswordFunc)(PK11SlotInfo *slot, PRBool retry, void *arg);
typedef PRBool (*PK11VerifyPasswordFunc)(PK11SlotInfo *slot, void *arg);
typedef PRBool (*PK11IsLoggedInFunc)(PK11SlotInfo *slot, void *arg);
# 41 "../../../../dist/public/security/keythi.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prclist.h" 1
# 38 "/home/nisse/hack/mozilla/dist/include/nspr/prclist.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 1
# 39 "/home/nisse/hack/mozilla/dist/include/nspr/prclist.h" 2
typedef struct PRCListStr PRCList;
struct PRCListStr {
PRCList *next;
PRCList *prev;
};
# 42 "../../../../dist/public/security/keythi.h" 2
struct SECKEYPublicKeyStr {
PLArenaPool *arena;
KeyType keyType;
PK11SlotInfo *pkcs11Slot;
CK_OBJECT_HANDLE pkcs11ID;
union {
RSAPublicKey rsa;
DSAPublicKey dsa;
DHPublicKey dh;
KEAPublicKey kea;
FortezzaPublicKey fortezza;
} u;
};
typedef struct SECKEYPublicKeyStr SECKEYPublicKey;
struct SECKEYPrivateKeyStr {
PLArenaPool *arena;
KeyType keyType;
PK11SlotInfo *pkcs11Slot;
CK_OBJECT_HANDLE pkcs11ID;
PRBool pkcs11IsTemp;
void *wincx;
};
typedef struct SECKEYPrivateKeyStr SECKEYPrivateKey;
typedef struct {
SECItem *pwitem;
PK11SymKey *key;
PK11SlotInfo *slot;
void *wincx;
} SEC_PKCS5KeyAndPassword;
typedef struct {
PRCList links;
SECKEYPrivateKey *key;
} SECKEYPrivateKeyListNode;
typedef struct {
PRCList list;
PLArenaPool *arena;
} SECKEYPrivateKeyList;
# 48 "../../../../dist/public/security/keyhi.h" 2
# 1 "../../../../dist/public/security/certt.h" 1
# 41 "../../../../dist/public/security/certt.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prclist.h" 1
# 42 "../../../../dist/public/security/certt.h" 2
# 1 "../../../../dist/public/security/pkcs11t.h" 1
# 43 "../../../../dist/public/security/certt.h" 2
# 1 "../../../../dist/public/security/seccomon.h" 1
# 44 "../../../../dist/public/security/certt.h" 2
# 1 "../../../../dist/public/security/secmodt.h" 1
# 45 "../../../../dist/public/security/certt.h" 2
# 1 "../../../../dist/public/security/secoidt.h" 1
# 46 "../../../../dist/public/security/certt.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 47 "../../../../dist/public/security/certt.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prcvar.h" 1
# 38 "/home/nisse/hack/mozilla/dist/include/nspr/prcvar.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prlock.h" 1
# 48 "/home/nisse/hack/mozilla/dist/include/nspr/prlock.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 1
# 49 "/home/nisse/hack/mozilla/dist/include/nspr/prlock.h" 2
# 63 "/home/nisse/hack/mozilla/dist/include/nspr/prlock.h"
typedef struct PRLock PRLock;
# 80 "/home/nisse/hack/mozilla/dist/include/nspr/prlock.h"
extern PRLock* PR_NewLock(void);
# 91 "/home/nisse/hack/mozilla/dist/include/nspr/prlock.h"
extern void PR_DestroyLock(PRLock *lock);
# 102 "/home/nisse/hack/mozilla/dist/include/nspr/prlock.h"
extern void PR_Lock(PRLock *lock);
# 114 "/home/nisse/hack/mozilla/dist/include/nspr/prlock.h"
extern PRStatus PR_Unlock(PRLock *lock);
# 39 "/home/nisse/hack/mozilla/dist/include/nspr/prcvar.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prinrval.h" 1
# 50 "/home/nisse/hack/mozilla/dist/include/nspr/prinrval.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 1
# 51 "/home/nisse/hack/mozilla/dist/include/nspr/prinrval.h" 2
typedef PRUint32 PRIntervalTime;
# 105 "/home/nisse/hack/mozilla/dist/include/nspr/prinrval.h"
extern PRIntervalTime PR_IntervalNow(void);
# 123 "/home/nisse/hack/mozilla/dist/include/nspr/prinrval.h"
extern PRUint32 PR_TicksPerSecond(void);
# 142 "/home/nisse/hack/mozilla/dist/include/nspr/prinrval.h"
extern PRIntervalTime PR_SecondsToInterval(PRUint32 seconds);
extern PRIntervalTime PR_MillisecondsToInterval(PRUint32 milli);
extern PRIntervalTime PR_MicrosecondsToInterval(PRUint32 micro);
# 163 "/home/nisse/hack/mozilla/dist/include/nspr/prinrval.h"
extern PRUint32 PR_IntervalToSeconds(PRIntervalTime ticks);
extern PRUint32 PR_IntervalToMilliseconds(PRIntervalTime ticks);
extern PRUint32 PR_IntervalToMicroseconds(PRIntervalTime ticks);
# 40 "/home/nisse/hack/mozilla/dist/include/nspr/prcvar.h" 2
typedef struct PRCondVar PRCondVar;
# 56 "/home/nisse/hack/mozilla/dist/include/nspr/prcvar.h"
extern PRCondVar* PR_NewCondVar(PRLock *lock);
extern void PR_DestroyCondVar(PRCondVar *cvar);
# 94 "/home/nisse/hack/mozilla/dist/include/nspr/prcvar.h"
extern PRStatus PR_WaitCondVar(PRCondVar *cvar, PRIntervalTime timeout);
# 109 "/home/nisse/hack/mozilla/dist/include/nspr/prcvar.h"
extern PRStatus PR_NotifyCondVar(PRCondVar *cvar);
# 119 "/home/nisse/hack/mozilla/dist/include/nspr/prcvar.h"
extern PRStatus PR_NotifyAllCondVar(PRCondVar *cvar);
# 48 "../../../../dist/public/security/certt.h" 2
# 1 "../../../../dist/public/security/nssilock.h" 1
# 133 "../../../../dist/public/security/nssilock.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 1
# 134 "../../../../dist/public/security/nssilock.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prmon.h" 1
# 38 "/home/nisse/hack/mozilla/dist/include/nspr/prmon.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 1
# 39 "/home/nisse/hack/mozilla/dist/include/nspr/prmon.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prinrval.h" 1
# 40 "/home/nisse/hack/mozilla/dist/include/nspr/prmon.h" 2
typedef struct PRMonitor PRMonitor;
# 52 "/home/nisse/hack/mozilla/dist/include/nspr/prmon.h"
extern PRMonitor* PR_NewMonitor(void);
extern void PR_DestroyMonitor(PRMonitor *mon);
extern void PR_EnterMonitor(PRMonitor *mon);
extern PRStatus PR_ExitMonitor(PRMonitor *mon);
# 92 "/home/nisse/hack/mozilla/dist/include/nspr/prmon.h"
extern PRStatus PR_Wait(PRMonitor *mon, PRIntervalTime ticks);
extern PRStatus PR_Notify(PRMonitor *mon);
extern PRStatus PR_NotifyAll(PRMonitor *mon);
# 135 "../../../../dist/public/security/nssilock.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prlock.h" 1
# 136 "../../../../dist/public/security/nssilock.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prcvar.h" 1
# 137 "../../../../dist/public/security/nssilock.h" 2
typedef enum {
nssILockArena = 0,
nssILockSession = 1,
nssILockObject = 2,
nssILockRefLock = 3,
nssILockCert = 4,
nssILockCertDB = 5,
nssILockDBM = 6,
nssILockCache = 7,
nssILockSSL = 8,
nssILockList = 9,
nssILockSlot = 10,
nssILockFreelist = 11,
nssILockOID = 12,
nssILockAttribute = 13,
nssILockPK11cxt = 14,
nssILockRWLock = 15,
nssILockOther = 16,
nssILockSelfServ = 17,
nssILockLast
} nssILockType;
typedef enum {
FlushTT = 0,
NewLock = 1,
Lock = 2,
Unlock = 3,
DestroyLock = 4,
NewCondVar = 5,
WaitCondVar = 6,
NotifyCondVar = 7,
NotifyAllCondVar = 8,
DestroyCondVar = 9,
NewMonitor = 10,
EnterMonitor = 11,
ExitMonitor = 12,
Notify = 13,
NotifyAll = 14,
Wait = 15,
DestroyMonitor = 16
} nssILockOp;
struct pzTrace_s {
PRUint32 threadID;
nssILockOp op;
nssILockType ltype;
PRIntervalTime callTime;
PRIntervalTime heldTime;
void *lock;
PRIntn line;
char file[24];
};
# 49 "../../../../dist/public/security/certt.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h" 1
# 45 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prlong.h" 1
# 46 "/home/nisse/hack/mozilla/dist/include/nspr/prlong.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 1
# 47 "/home/nisse/hack/mozilla/dist/include/nspr/prlong.h" 2
# 66 "/home/nisse/hack/mozilla/dist/include/nspr/prlong.h"
extern PRInt64 LL_MaxInt(void);
extern PRInt64 LL_MinInt(void);
extern PRInt64 LL_Zero(void);
# 46 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtime.h" 1
# 48 "/home/nisse/hack/mozilla/dist/include/nspr/prtime.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prlong.h" 1
# 49 "/home/nisse/hack/mozilla/dist/include/nspr/prtime.h" 2
# 77 "/home/nisse/hack/mozilla/dist/include/nspr/prtime.h"
typedef PRInt64 PRTime;
typedef struct PRTimeParameters {
PRInt32 tp_gmt_offset;
PRInt32 tp_dst_offset;
} PRTimeParameters;
# 112 "/home/nisse/hack/mozilla/dist/include/nspr/prtime.h"
typedef struct PRExplodedTime {
PRInt32 tm_usec;
PRInt32 tm_sec;
PRInt32 tm_min;
PRInt32 tm_hour;
PRInt32 tm_mday;
PRInt32 tm_month;
PRInt16 tm_year;
PRInt8 tm_wday;
PRInt16 tm_yday;
PRTimeParameters tm_params;
} PRExplodedTime;
# 155 "/home/nisse/hack/mozilla/dist/include/nspr/prtime.h"
typedef PRTimeParameters ( *PRTimeParamFn)(const PRExplodedTime *gmt);
# 177 "/home/nisse/hack/mozilla/dist/include/nspr/prtime.h"
extern PRTime
PR_Now(void);
# 191 "/home/nisse/hack/mozilla/dist/include/nspr/prtime.h"
extern void PR_ExplodeTime(
PRTime usecs, PRTimeParamFn params, PRExplodedTime *exploded);
extern PRTime
PR_ImplodeTime(const PRExplodedTime *exploded);
# 214 "/home/nisse/hack/mozilla/dist/include/nspr/prtime.h"
extern void PR_NormalizeTime(
PRExplodedTime *exploded, PRTimeParamFn params);
extern PRTimeParameters PR_LocalTimeParameters(const PRExplodedTime *gmt);
extern PRTimeParameters PR_GMTParameters(const PRExplodedTime *gmt);
extern PRTimeParameters PR_USPacificTimeParameters(const PRExplodedTime *gmt);
# 264 "/home/nisse/hack/mozilla/dist/include/nspr/prtime.h"
extern PRStatus PR_ParseTimeString (
const char *string,
PRBool default_to_gmt,
PRTime *result);
# 281 "/home/nisse/hack/mozilla/dist/include/nspr/prtime.h"
extern PRUint32 PR_FormatTime(char *buf, int buflen, const char *fmt,
const PRExplodedTime *tm);
extern PRUint32
PR_FormatTimeUSEnglish( char* buf, PRUint32 bufSize,
const char* format, const PRExplodedTime* tm );
# 47 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prinrval.h" 1
# 48 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prinet.h" 1
# 64 "/home/nisse/hack/mozilla/dist/include/nspr/prinet.h"
# 1 "/usr/include/sys/types.h" 1 3
# 65 "/home/nisse/hack/mozilla/dist/include/nspr/prinet.h" 2
# 1 "/usr/include/sys/socket.h" 1 3
# 23 "/usr/include/sys/socket.h" 3
# 1 "/usr/include/features.h" 1 3
# 24 "/usr/include/sys/socket.h" 2 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 29 "/usr/include/sys/socket.h" 2 3
# 1 "/usr/include/bits/socket.h" 1 3
# 29 "/usr/include/bits/socket.h" 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 30 "/usr/include/bits/socket.h" 2 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/limits.h" 1 3
# 11 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/limits.h" 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/syslimits.h" 1 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/limits.h" 1 3
# 125 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/limits.h" 3
# 1 "/usr/include/limits.h" 1 3
# 26 "/usr/include/limits.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/limits.h" 2 3
# 1 "/usr/include/bits/posix1_lim.h" 1 3
# 126 "/usr/include/bits/posix1_lim.h" 3
# 1 "/usr/include/bits/local_lim.h" 1 3
# 27 "/usr/include/bits/local_lim.h" 3
# 1 "/usr/include/linux/limits.h" 1 3
# 28 "/usr/include/bits/local_lim.h" 2 3
# 127 "/usr/include/bits/posix1_lim.h" 2 3
# 31 "/usr/include/limits.h" 2 3
# 1 "/usr/include/bits/posix2_lim.h" 1 3
# 35 "/usr/include/limits.h" 2 3
# 1 "/usr/include/bits/xopen_lim.h" 1 3
# 34 "/usr/include/bits/xopen_lim.h" 3
# 1 "/usr/include/bits/stdio_lim.h" 1 3
# 35 "/usr/include/bits/xopen_lim.h" 2 3
# 39 "/usr/include/limits.h" 2 3
# 126 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/limits.h" 2 3
# 8 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/syslimits.h" 2 3
# 12 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/limits.h" 2 3
# 32 "/usr/include/bits/socket.h" 2 3
# 1 "/usr/include/sys/types.h" 1 3
# 33 "/usr/include/bits/socket.h" 2 3
typedef unsigned int socklen_t;
enum __socket_type
{
SOCK_STREAM = 1,
SOCK_DGRAM = 2,
SOCK_RAW = 3,
SOCK_RDM = 4,
SOCK_SEQPACKET = 5,
SOCK_PACKET = 10
};
# 133 "/usr/include/bits/socket.h" 3
# 1 "/usr/include/bits/sockaddr.h" 1 3
# 29 "/usr/include/bits/sockaddr.h" 3
typedef unsigned short int sa_family_t;
# 42 "/usr/include/bits/sockaddr.h" 3
extern int __libc_sa_len (sa_family_t __af) ;
# 134 "/usr/include/bits/socket.h" 2 3
struct sockaddr
{
sa_family_t sa_family;
char sa_data[14];
};
# 153 "/usr/include/bits/socket.h" 3
struct sockaddr_storage
{
sa_family_t __ss_family;
__uint32_t __ss_align;
char __ss_padding[(128 - (2 * sizeof (__uint32_t)))];
};
enum
{
MSG_OOB = 0x01,
MSG_PEEK = 0x02,
MSG_DONTROUTE = 0x04,
MSG_CTRUNC = 0x08,
MSG_PROXY = 0x10,
MSG_TRUNC = 0x20,
MSG_DONTWAIT = 0x40,
MSG_EOR = 0x80,
MSG_WAITALL = 0x100,
MSG_FIN = 0x200,
MSG_SYN = 0x400,
MSG_URG = 0x800,
MSG_RST = 0x1000,
MSG_ERRQUEUE = 0x2000,
MSG_NOSIGNAL = 0x4000
};
struct msghdr
{
void * msg_name;
socklen_t msg_namelen;
struct iovec *msg_iov;
size_t msg_iovlen;
void * msg_control;
size_t msg_controllen;
int msg_flags;
};
struct cmsghdr
{
size_t cmsg_len;
int cmsg_level;
int cmsg_type;
};
# 247 "/usr/include/bits/socket.h" 3
extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) ;
extern __inline struct cmsghdr *
__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
{
if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
return 0;
__cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
+ (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & ~(sizeof (size_t) - 1)));
if ((unsigned char *) (__cmsg + 1) >= ((unsigned char *) __mhdr->msg_control
+ __mhdr->msg_controllen)
|| ((unsigned char *) __cmsg + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & ~(sizeof (size_t) - 1))
>= ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
return 0;
return __cmsg;
}
enum
{
SCM_RIGHTS = 0x01,
SCM_CREDENTIALS = 0x02,
__SCM_CONNECT = 0x03
};
struct ucred
{
pid_t pid;
uid_t uid;
gid_t gid;
};
# 1 "/usr/include/asm/socket.h" 1 3
# 11 "/usr/include/asm/socket.h" 3
# 1 "/usr/include/asm-sparc/socket.h" 1 3
# 1 "/usr/include/asm/sockios.h" 1 3
# 11 "/usr/include/asm/sockios.h" 3
# 1 "/usr/include/asm-sparc/sockios.h" 1 3
# 12 "/usr/include/asm/sockios.h" 2 3
# 6 "/usr/include/asm-sparc/socket.h" 2 3
# 12 "/usr/include/asm/socket.h" 2 3
# 296 "/usr/include/bits/socket.h" 2 3
struct linger
{
int l_onoff;
int l_linger;
};
# 35 "/usr/include/sys/socket.h" 2 3
struct osockaddr
{
unsigned short int sa_family;
unsigned char sa_data[14];
};
enum
{
SHUT_RD = 0,
SHUT_WR,
SHUT_RDWR
};
# 87 "/usr/include/sys/socket.h" 3
typedef union { struct sockaddr *__sockaddr__; struct sockaddr_at *__sockaddr_at__; struct sockaddr_ax25 *__sockaddr_ax25__; struct sockaddr_dl *__sockaddr_dl__; struct sockaddr_eon *__sockaddr_eon__; struct sockaddr_in *__sockaddr_in__; struct sockaddr_in6 *__sockaddr_in6__; struct sockaddr_inarp *__sockaddr_inarp__; struct sockaddr_ipx *__sockaddr_ipx__; struct sockaddr_iso *__sockaddr_iso__; struct sockaddr_ns *__sockaddr_ns__; struct sockaddr_un *__sockaddr_un__; struct sockaddr_x25 *__sockaddr_x25__;
} __SOCKADDR_ARG __attribute__ ((__transparent_union__));
typedef union { __const struct sockaddr *__sockaddr__; __const struct sockaddr_at *__sockaddr_at__; __const struct sockaddr_ax25 *__sockaddr_ax25__; __const struct sockaddr_dl *__sockaddr_dl__; __const struct sockaddr_eon *__sockaddr_eon__; __const struct sockaddr_in *__sockaddr_in__; __const struct sockaddr_in6 *__sockaddr_in6__; __const struct sockaddr_inarp *__sockaddr_inarp__; __const struct sockaddr_ipx *__sockaddr_ipx__; __const struct sockaddr_iso *__sockaddr_iso__; __const struct sockaddr_ns *__sockaddr_ns__; __const struct sockaddr_un *__sockaddr_un__; __const struct sockaddr_x25 *__sockaddr_x25__;
} __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__));
extern int socket (int __domain, int __type, int __protocol) ;
extern int socketpair (int __domain, int __type, int __protocol, int __fds[2]) ;
extern int bind (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len) ;
extern int getsockname (int __fd, __SOCKADDR_ARG __addr, socklen_t *__len) ;
extern int __connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len) ;
extern int connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len) ;
extern int getpeername (int __fd, __SOCKADDR_ARG __addr, socklen_t *__len) ;
extern int __send (int __fd, __const void * __buf, size_t __n, int __flags) ;
extern int send (int __fd, __const void * __buf, size_t __n, int __flags) ;
extern int recv (int __fd, void * __buf, size_t __n, int __flags) ;
extern int sendto (int __fd, __const void * __buf, size_t __n, int __flags, __CONST_SOCKADDR_ARG __addr, socklen_t __addr_len) ;
extern int recvfrom (int __fd, void * __buf, size_t __n, int __flags, __SOCKADDR_ARG __addr, socklen_t *__addr_len) ;
extern int sendmsg (int __fd, __const struct msghdr *__message, int __flags) ;
extern int recvmsg (int __fd, struct msghdr *__message, int __flags) ;
extern int getsockopt (int __fd, int __level, int __optname, void * __optval, socklen_t *__optlen) ;
extern int setsockopt (int __fd, int __level, int __optname, __const void * __optval, socklen_t __optlen) ;
extern int listen (int __fd, unsigned int __n) ;
extern int accept (int __fd, __SOCKADDR_ARG __addr, socklen_t *__addr_len) ;
# 197 "/usr/include/sys/socket.h" 3
extern int shutdown (int __fd, int __how) ;
extern int isfdtype (int __fd, int __fdtype) ;
# 66 "/home/nisse/hack/mozilla/dist/include/nspr/prinet.h" 2
# 1 "/usr/include/netinet/in.h" 1 3
# 22 "/usr/include/netinet/in.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/netinet/in.h" 2 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/limits.h" 1 3
# 24 "/usr/include/netinet/in.h" 2 3
# 1 "/usr/include/stdint.h" 1 3
# 26 "/usr/include/stdint.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/stdint.h" 2 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 29 "/usr/include/stdint.h" 2 3
# 1 "/usr/include/bits/wordsize.h" 1 3
# 30 "/usr/include/stdint.h" 2 3
# 50 "/usr/include/stdint.h" 3
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
__extension__
typedef unsigned long long int uint64_t;
typedef signed char int_least8_t;
typedef short int int_least16_t;
typedef int int_least32_t;
__extension__
typedef long long int int_least64_t;
typedef unsigned char uint_least8_t;
typedef unsigned short int uint_least16_t;
typedef unsigned int uint_least32_t;
__extension__
typedef unsigned long long int uint_least64_t;
typedef signed char int_fast8_t;
typedef int int_fast16_t;
typedef int int_fast32_t;
__extension__
typedef long long int int_fast64_t;
typedef unsigned char uint_fast8_t;
typedef unsigned int uint_fast16_t;
typedef unsigned int uint_fast32_t;
__extension__
typedef unsigned long long int uint_fast64_t;
# 124 "/usr/include/stdint.h" 3
typedef int intptr_t;
typedef unsigned int uintptr_t;
# 136 "/usr/include/stdint.h" 3
__extension__
typedef long long int intmax_t;
__extension__
typedef unsigned long long int uintmax_t;
# 25 "/usr/include/netinet/in.h" 2 3
# 1 "/usr/include/sys/types.h" 1 3
# 27 "/usr/include/netinet/in.h" 2 3
# 1 "/usr/include/bits/socket.h" 1 3
# 28 "/usr/include/netinet/in.h" 2 3
enum
{
IPPROTO_IP = 0,
IPPROTO_HOPOPTS = 0,
IPPROTO_ICMP = 1,
IPPROTO_IGMP = 2,
IPPROTO_IPIP = 4,
IPPROTO_TCP = 6,
IPPROTO_EGP = 8,
IPPROTO_PUP = 12,
IPPROTO_UDP = 17,
IPPROTO_IDP = 22,
IPPROTO_TP = 29,
IPPROTO_IPV6 = 41,
IPPROTO_ROUTING = 43,
IPPROTO_FRAGMENT = 44,
IPPROTO_RSVP = 46,
IPPROTO_GRE = 47,
IPPROTO_ESP = 50,
IPPROTO_AH = 51,
IPPROTO_ICMPV6 = 58,
IPPROTO_NONE = 59,
IPPROTO_DSTOPTS = 60,
IPPROTO_MTP = 92,
IPPROTO_ENCAP = 98,
IPPROTO_PIM = 103,
IPPROTO_COMP = 108,
IPPROTO_RAW = 255,
IPPROTO_MAX
};
enum
{
IPPORT_ECHO = 7,
IPPORT_DISCARD = 9,
IPPORT_SYSTAT = 11,
IPPORT_DAYTIME = 13,
IPPORT_NETSTAT = 15,
IPPORT_FTP = 21,
IPPORT_TELNET = 23,
IPPORT_SMTP = 25,
IPPORT_TIMESERVER = 37,
IPPORT_NAMESERVER = 42,
IPPORT_WHOIS = 43,
IPPORT_MTP = 57,
IPPORT_TFTP = 69,
IPPORT_RJE = 77,
IPPORT_FINGER = 79,
IPPORT_TTYLINK = 87,
IPPORT_SUPDUP = 95,
IPPORT_EXECSERVER = 512,
IPPORT_LOGINSERVER = 513,
IPPORT_CMDSERVER = 514,
IPPORT_EFSSERVER = 520,
IPPORT_BIFFUDP = 512,
IPPORT_WHOSERVER = 513,
IPPORT_ROUTESERVER = 520,
IPPORT_RESERVED = 1024,
IPPORT_USERRESERVED = 5000
};
struct in_addr
{
uint32_t s_addr;
};
# 162 "/usr/include/netinet/in.h" 3
struct in6_addr
{
union
{
uint8_t u6_addr8[16];
uint16_t u6_addr16[8];
uint32_t u6_addr32[4];
} in6_u;
};
extern const struct in6_addr in6addr_any;
extern const struct in6_addr in6addr_loopback;
# 1 "/usr/include/bits/sockaddr.h" 1 3
# 189 "/usr/include/netinet/in.h" 2 3
struct sockaddr_in
{
sa_family_t sin_family;
uint16_t sin_port;
struct in_addr sin_addr;
unsigned char sin_zero[sizeof (struct sockaddr) -
(sizeof (unsigned short int)) -
sizeof (uint16_t) -
sizeof (struct in_addr)];
};
struct sockaddr_in6
{
sa_family_t sin6_family;
uint16_t sin6_port;
uint32_t sin6_flowinfo;
struct in6_addr sin6_addr;
};
struct ipv6_mreq
{
struct in6_addr ipv6mr_multiaddr;
unsigned int ipv6mr_interface;
};
# 1 "/usr/include/bits/in.h" 1 3
# 66 "/usr/include/bits/in.h" 3
struct ip_opts
{
struct in_addr ip_dst;
char ip_opts[40];
};
struct ip_mreq
{
struct in_addr imr_multiaddr;
struct in_addr imr_interface;
};
struct ip_mreqn
{
struct in_addr imr_multiaddr;
struct in_addr imr_address;
int imr_ifindex;
};
struct in_pktinfo
{
int ipi_ifindex;
struct in_addr ipi_spec_dst;
struct in_addr ipi_addr;
};
# 226 "/usr/include/netinet/in.h" 2 3
# 234 "/usr/include/netinet/in.h" 3
extern uint32_t ntohl (uint32_t __netlong) ;
extern uint16_t ntohs (uint16_t __netshort) ;
extern uint32_t htonl (uint32_t __hostlong) ;
extern uint16_t htons (uint16_t __hostshort) ;
# 1 "/usr/include/endian.h" 1 3
# 240 "/usr/include/netinet/in.h" 2 3
# 1 "/usr/include/bits/byteswap.h" 1 3
# 243 "/usr/include/netinet/in.h" 2 3
# 291 "/usr/include/netinet/in.h" 3
extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) ;
# 311 "/usr/include/netinet/in.h" 3
struct in6_pktinfo
{
struct in6_addr ipi6_addr;
unsigned int ipi6_ifindex;
};
# 67 "/home/nisse/hack/mozilla/dist/include/nspr/prinet.h" 2
# 81 "/home/nisse/hack/mozilla/dist/include/nspr/prinet.h"
# 1 "/usr/include/arpa/inet.h" 1 3
# 22 "/usr/include/arpa/inet.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/arpa/inet.h" 2 3
# 1 "/usr/include/sys/types.h" 1 3
# 25 "/usr/include/arpa/inet.h" 2 3
# 1 "/usr/include/netinet/in.h" 1 3
# 26 "/usr/include/arpa/inet.h" 2 3
extern u_int32_t inet_addr (__const char *__cp) ;
extern int inet_aton (__const char *__cp, struct in_addr *__inp) ;
extern u_int32_t inet_lnaof (struct in_addr __in) ;
extern struct in_addr inet_makeaddr (u_int32_t __net, u_int32_t __host) ;
extern char *inet_neta (u_int32_t __net, char *__buf, size_t __len) ;
extern u_int32_t inet_netof (struct in_addr __in) ;
extern u_int32_t inet_network (__const char *__cp) ;
extern char *inet_net_ntop (int __af, __const void *__cp, int __bits, char *__buf, size_t __len) ;
extern int inet_net_pton (int __af, __const char *__cp, void *__buf, size_t __len) ;
extern char *inet_ntoa (struct in_addr __in) ;
extern int inet_pton (int __af, __const char *__cp, void *__buf) ;
extern __const char *inet_ntop (int __af, __const void *__cp, char *__buf, size_t __len) ;
extern unsigned int inet_nsap_addr (__const char *__cp, unsigned char *__buf, int __len) ;
extern char *inet_nsap_ntoa (int __len, __const unsigned char *__cp, char *__buf) ;
# 82 "/home/nisse/hack/mozilla/dist/include/nspr/prinet.h" 2
# 1 "/usr/include/netdb.h" 1 3
# 26 "/usr/include/netdb.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/netdb.h" 2 3
# 1 "/usr/include/rpc/netdb.h" 1 3
# 39 "/usr/include/rpc/netdb.h" 3
# 1 "/usr/include/features.h" 1 3
# 40 "/usr/include/rpc/netdb.h" 2 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 43 "/usr/include/rpc/netdb.h" 2 3
struct rpcent
{
char *r_name;
char **r_aliases;
int r_number;
};
extern void setrpcent (int _stayopen) ;
extern void endrpcent (void) ;
extern struct rpcent *getrpcbyname (__const char *__name) ;
extern struct rpcent *getrpcbynumber (int __number) ;
extern struct rpcent *getrpcent (void) ;
extern int getrpcbyname_r (__const char *__name, struct rpcent *__result_buf, char *__buffer, size_t __buflen, struct rpcent **__result) ;
extern int getrpcbynumber_r (int __number, struct rpcent *__result_buf, char *__buffer, size_t __buflen, struct rpcent **__result) ;
extern int getrpcent_r (struct rpcent *__result_buf, char *__buffer, size_t __buflen, struct rpcent **__result) ;
# 31 "/usr/include/netdb.h" 2 3
# 1 "/usr/include/sys/socket.h" 1 3
# 32 "/usr/include/netdb.h" 2 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 34 "/usr/include/netdb.h" 2 3
# 47 "/usr/include/netdb.h" 3
extern int h_errno;
extern int *__h_errno_location (void) __attribute__ ((__const__));
# 85 "/usr/include/netdb.h" 3
extern void herror (__const char *__str) ;
extern __const char *hstrerror (int __err_num) ;
struct hostent
{
char *h_name;
char **h_aliases;
int h_addrtype;
int h_length;
char **h_addr_list;
};
extern void sethostent (int __stay_open) ;
extern void endhostent (void) ;
extern struct hostent *gethostent (void) ;
extern struct hostent *gethostbyaddr (__const char *__addr, size_t __len, int __type) ;
extern struct hostent *gethostbyname (__const char *__name) ;
extern struct hostent *gethostbyname2 (__const char *__name, int __af) ;
extern int gethostent_r (struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, int *__restrict __h_errnop) ;
extern int gethostbyaddr_r (__const char *__restrict __addr, size_t __len, int __type, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, int *__restrict __h_errnop) ;
extern int gethostbyname_r (__const char *__restrict __name, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, int *__restrict __h_errnop) ;
extern int gethostbyname2_r (__const char *__restrict __name, int __af, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, int *__restrict __h_errnop) ;
# 169 "/usr/include/netdb.h" 3
struct netent
{
char *n_name;
char **n_aliases;
int n_addrtype;
unsigned long int n_net;
};
extern void setnetent (int __stay_open) ;
extern void endnetent (void) ;
extern struct netent *getnetent (void) ;
extern struct netent *getnetbyaddr (unsigned long int __net, int __type) ;
extern struct netent *getnetbyname (__const char *__name) ;
extern int getnetent_r (struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct netent **__restrict __result, int *__restrict __h_errnop) ;
extern int getnetbyaddr_r (unsigned long int __net, int __type, struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct netent **__restrict __result, int *__restrict __h_errnop) ;
extern int getnetbyname_r (__const char *__restrict __name, struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct netent **__restrict __result, int *__restrict __h_errnop) ;
# 222 "/usr/include/netdb.h" 3
struct servent
{
char *s_name;
char **s_aliases;
int s_port;
char *s_proto;
};
extern void setservent (int __stay_open) ;
extern void endservent (void) ;
extern struct servent *getservent (void) ;
extern struct servent *getservbyname (__const char *__name, __const char *__proto) ;
extern struct servent *getservbyport (int __port, __const char *__proto) ;
extern int getservent_r (struct servent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct servent **__restrict __result) ;
extern int getservbyname_r (__const char *__restrict __name, __const char *__restrict __proto, struct servent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct servent **__restrict __result) ;
extern int getservbyport_r (int __port, __const char *__restrict __proto, struct servent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct servent **__restrict __result) ;
struct protoent
{
char *p_name;
char **p_aliases;
int p_proto;
};
extern void setprotoent (int __stay_open) ;
extern void endprotoent (void) ;
extern struct protoent *getprotoent (void) ;
extern struct protoent *getprotobyname (__const char *__name) ;
extern struct protoent *getprotobynumber (int __proto) ;
extern int getprotoent_r (struct protoent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct protoent **__restrict __result) ;
extern int getprotobyname_r (__const char *__restrict __name, struct protoent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct protoent **__restrict __result) ;
extern int getprotobynumber_r (int __proto, struct protoent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct protoent **__restrict __result) ;
extern int setnetgrent (__const char *__netgroup) ;
extern void endnetgrent (void) ;
extern int getnetgrent (char **__restrict __hostp, char **__restrict __userp, char **__restrict __domainp) ;
extern int innetgr (__const char *__netgroup, __const char *__host, __const char *__user, __const char *domain) ;
extern int getnetgrent_r (char **__restrict __hostp, char **__restrict __userp, char **__restrict __domainp, char *__restrict __buffer, size_t __buflen) ;
# 348 "/usr/include/netdb.h" 3
extern int rcmd (char **__restrict __ahost, unsigned short int __rport, __const char *__restrict __locuser, __const char *__restrict __remuser, __const char *__restrict __cmd, int *__restrict __fd2p) ;
# 358 "/usr/include/netdb.h" 3
extern int rexec (char **__restrict __ahost, int __rport, __const char *__restrict __name, __const char *__restrict __pass, __const char *__restrict __cmd, int *__restrict __fd2p) ;
# 367 "/usr/include/netdb.h" 3
extern int ruserok (__const char *__rhost, int __suser, __const char *__remuser, __const char *__locuser) ;
extern int rresvport (int *__alport) ;
struct addrinfo
{
int ai_flags;
int ai_family;
int ai_socktype;
int ai_protocol;
int ai_addrlen;
struct sockaddr *ai_addr;
char *ai_canonname;
struct addrinfo *ai_next;
};
# 421 "/usr/include/netdb.h" 3
extern int getaddrinfo (__const char *__restrict __name, __const char *__restrict __service, __const struct addrinfo *__restrict __req, struct addrinfo **__restrict __pai) ;
extern void freeaddrinfo (struct addrinfo *__ai) ;
extern char *gai_strerror (int __ecode) ;
extern int getnameinfo (__const struct sockaddr *__restrict __sa, socklen_t __salen, char *__restrict __host, size_t __hostlen, char *__restrict __serv, size_t __servlen, int __flags) ;
# 84 "/home/nisse/hack/mozilla/dist/include/nspr/prinet.h" 2
# 49 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h" 2
typedef struct PRDir PRDir;
typedef struct PRDirEntry PRDirEntry;
typedef struct PRFileDesc PRFileDesc;
typedef struct PRFileInfo PRFileInfo;
typedef struct PRFileInfo64 PRFileInfo64;
typedef union PRNetAddr PRNetAddr;
typedef struct PRIOMethods PRIOMethods;
typedef struct PRPollDesc PRPollDesc;
typedef struct PRFilePrivate PRFilePrivate;
typedef struct PRSendFileData PRSendFileData;
# 75 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
typedef PRIntn PRDescIdentity;
struct PRFileDesc {
const PRIOMethods *methods;
PRFilePrivate *secret;
PRFileDesc *lower, *higher;
void ( *dtor)(PRFileDesc *fd);
PRDescIdentity identity;
};
# 95 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
typedef enum PRTransmitFileFlags {
PR_TRANSMITFILE_KEEP_OPEN = 0,
PR_TRANSMITFILE_CLOSE_SOCKET = 1
} PRTransmitFileFlags;
# 148 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
struct PRIPv6Addr {
union {
PRUint8 _S6_u8[16];
PRUint16 _S6_u16[8];
PRUint32 _S6_u32[4];
PRUint64 _S6_u64[2];
} _S6_un;
};
typedef struct PRIPv6Addr PRIPv6Addr;
union PRNetAddr {
struct {
PRUint16 family;
char data[14];
} raw;
struct {
PRUint16 family;
PRUint16 port;
PRUint32 ip;
char pad[8];
} inet;
struct {
PRUint16 family;
PRUint16 port;
PRUint32 flowinfo;
PRIPv6Addr ip;
PRUint32 scope_id;
} ipv6;
struct {
PRUint16 family;
char path[104];
} local;
};
# 206 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
typedef enum PRSockOption
{
PR_SockOpt_Nonblocking,
PR_SockOpt_Linger,
PR_SockOpt_Reuseaddr,
PR_SockOpt_Keepalive,
PR_SockOpt_RecvBufferSize,
PR_SockOpt_SendBufferSize,
PR_SockOpt_IpTimeToLive,
PR_SockOpt_IpTypeOfService,
PR_SockOpt_AddMember,
PR_SockOpt_DropMember,
PR_SockOpt_McastInterface,
PR_SockOpt_McastTimeToLive,
PR_SockOpt_McastLoopback,
PR_SockOpt_NoDelay,
PR_SockOpt_MaxSegment,
PR_SockOpt_Broadcast,
PR_SockOpt_Last
} PRSockOption;
typedef struct PRLinger {
PRBool polarity;
PRIntervalTime linger;
} PRLinger;
typedef struct PRMcastRequest {
PRNetAddr mcaddr;
PRNetAddr ifaddr;
} PRMcastRequest;
typedef struct PRSocketOptionData
{
PRSockOption option;
union
{
PRUintn ip_ttl;
PRUintn mcast_ttl;
PRUintn tos;
PRBool non_blocking;
PRBool reuse_addr;
PRBool keep_alive;
PRBool mcast_loopback;
PRBool no_delay;
PRBool broadcast;
PRSize max_segment;
PRSize recv_buffer_size;
PRSize send_buffer_size;
PRLinger linger;
PRMcastRequest add_member;
PRMcastRequest drop_member;
PRNetAddr mcast_if;
} value;
} PRSocketOptionData;
# 272 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
typedef struct PRIOVec {
char *iov_base;
int iov_len;
} PRIOVec;
typedef enum PRDescType
{
PR_DESC_FILE = 1,
PR_DESC_SOCKET_TCP = 2,
PR_DESC_SOCKET_UDP = 3,
PR_DESC_LAYERED = 4,
PR_DESC_PIPE = 5
} PRDescType;
typedef enum PRSeekWhence {
PR_SEEK_SET = 0,
PR_SEEK_CUR = 1,
PR_SEEK_END = 2
} PRSeekWhence;
extern PRDescType PR_GetDescType(PRFileDesc *file);
# 315 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
typedef PRStatus ( *PRCloseFN)(PRFileDesc *fd);
typedef PRInt32 ( *PRReadFN)(PRFileDesc *fd, void *buf, PRInt32 amount);
typedef PRInt32 ( *PRWriteFN)(PRFileDesc *fd, const void *buf, PRInt32 amount);
typedef PRInt32 ( *PRAvailableFN)(PRFileDesc *fd);
typedef PRInt64 ( *PRAvailable64FN)(PRFileDesc *fd);
typedef PRStatus ( *PRFsyncFN)(PRFileDesc *fd);
typedef PROffset32 ( *PRSeekFN)(PRFileDesc *fd, PROffset32 offset, PRSeekWhence how);
typedef PROffset64 ( *PRSeek64FN)(PRFileDesc *fd, PROffset64 offset, PRSeekWhence how);
typedef PRStatus ( *PRFileInfoFN)(PRFileDesc *fd, PRFileInfo *info);
typedef PRStatus ( *PRFileInfo64FN)(PRFileDesc *fd, PRFileInfo64 *info);
typedef PRInt32 ( *PRWritevFN)(
PRFileDesc *fd, const PRIOVec *iov, PRInt32 iov_size,
PRIntervalTime timeout);
typedef PRStatus ( *PRConnectFN)(
PRFileDesc *fd, const PRNetAddr *addr, PRIntervalTime timeout);
typedef PRFileDesc* ( *PRAcceptFN) (
PRFileDesc *fd, PRNetAddr *addr, PRIntervalTime timeout);
typedef PRStatus ( *PRBindFN)(PRFileDesc *fd, const PRNetAddr *addr);
typedef PRStatus ( *PRListenFN)(PRFileDesc *fd, PRIntn backlog);
typedef PRStatus ( *PRShutdownFN)(PRFileDesc *fd, PRIntn how);
typedef PRInt32 ( *PRRecvFN)(
PRFileDesc *fd, void *buf, PRInt32 amount,
PRIntn flags, PRIntervalTime timeout);
typedef PRInt32 ( *PRSendFN) (
PRFileDesc *fd, const void *buf, PRInt32 amount,
PRIntn flags, PRIntervalTime timeout);
typedef PRInt32 ( *PRRecvfromFN)(
PRFileDesc *fd, void *buf, PRInt32 amount,
PRIntn flags, PRNetAddr *addr, PRIntervalTime timeout);
typedef PRInt32 ( *PRSendtoFN)(
PRFileDesc *fd, const void *buf, PRInt32 amount,
PRIntn flags, const PRNetAddr *addr, PRIntervalTime timeout);
typedef PRInt16 ( *PRPollFN)(
PRFileDesc *fd, PRInt16 in_flags, PRInt16 *out_flags);
typedef PRInt32 ( *PRAcceptreadFN)(
PRFileDesc *sd, PRFileDesc **nd, PRNetAddr **raddr,
void *buf, PRInt32 amount, PRIntervalTime t);
typedef PRInt32 ( *PRTransmitfileFN)(
PRFileDesc *sd, PRFileDesc *fd, const void *headers,
PRInt32 hlen, PRTransmitFileFlags flags, PRIntervalTime t);
typedef PRStatus ( *PRGetsocknameFN)(PRFileDesc *fd, PRNetAddr *addr);
typedef PRStatus ( *PRGetpeernameFN)(PRFileDesc *fd, PRNetAddr *addr);
typedef PRStatus ( *PRGetsocketoptionFN)(
PRFileDesc *fd, PRSocketOptionData *data);
typedef PRStatus ( *PRSetsocketoptionFN)(
PRFileDesc *fd, const PRSocketOptionData *data);
typedef PRInt32 ( *PRSendfileFN)(
PRFileDesc *networkSocket, PRSendFileData *sendData,
PRTransmitFileFlags flags, PRIntervalTime timeout);
typedef PRStatus ( *PRConnectcontinueFN)(
PRFileDesc *fd, PRInt16 out_flags);
typedef PRIntn ( *PRReservedFN)(PRFileDesc *fd);
struct PRIOMethods {
PRDescType file_type;
PRCloseFN close;
PRReadFN read;
PRWriteFN write;
PRAvailableFN available;
PRAvailable64FN available64;
PRFsyncFN fsync;
PRSeekFN seek;
PRSeek64FN seek64;
PRFileInfoFN fileInfo;
PRFileInfo64FN fileInfo64;
PRWritevFN writev;
PRConnectFN connect;
PRAcceptFN accept;
PRBindFN bind;
PRListenFN listen;
PRShutdownFN shutdown;
PRRecvFN recv;
PRSendFN send;
PRRecvfromFN recvfrom;
PRSendtoFN sendto;
PRPollFN poll;
PRAcceptreadFN acceptread;
PRTransmitfileFN transmitfile;
PRGetsocknameFN getsockname;
PRGetpeernameFN getpeername;
PRReservedFN reserved_fn_6;
PRReservedFN reserved_fn_5;
PRGetsocketoptionFN getsocketoption;
PRSetsocketoptionFN setsocketoption;
PRSendfileFN sendfile;
PRConnectcontinueFN connectcontinue;
PRReservedFN reserved_fn_3;
PRReservedFN reserved_fn_2;
PRReservedFN reserved_fn_1;
PRReservedFN reserved_fn_0;
};
# 429 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
typedef enum PRSpecialFD
{
PR_StandardInput,
PR_StandardOutput,
PR_StandardError
} PRSpecialFD;
extern PRFileDesc* PR_GetSpecialFD(PRSpecialFD id);
# 476 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRDescIdentity PR_GetUniqueIdentity(const char *layer_name);
extern const char* PR_GetNameForIdentity(PRDescIdentity ident);
extern PRDescIdentity PR_GetLayersIdentity(PRFileDesc* fd);
extern PRFileDesc* PR_GetIdentitiesLayer(PRFileDesc* fd_stack, PRDescIdentity id);
# 489 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern const PRIOMethods * PR_GetDefaultIOMethods(void);
# 500 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRFileDesc* PR_CreateIOLayerStub(
PRDescIdentity ident, const PRIOMethods *methods);
# 517 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRFileDesc* PR_CreateIOLayer(PRFileDesc* fd);
# 533 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_PushIOLayer(
PRFileDesc *fd_stack, PRDescIdentity id, PRFileDesc *layer);
# 550 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRFileDesc* PR_PopIOLayer(PRFileDesc *fd_stack, PRDescIdentity id);
# 624 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRFileDesc* PR_Open(const char *name, PRIntn flags, PRIntn mode);
# 650 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRFileDesc* PR_OpenFile(
const char *name, PRIntn flags, PRIntn mode);
# 673 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_Close(PRFileDesc *fd);
# 708 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRInt32 PR_Read(PRFileDesc *fd, void *buf, PRInt32 amount);
# 732 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRInt32 PR_Write(PRFileDesc *fd,const void *buf,PRInt32 amount);
# 766 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRInt32 PR_Writev(
PRFileDesc *fd, const PRIOVec *iov, PRInt32 iov_size,
PRIntervalTime timeout);
# 787 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_Delete(const char *name);
typedef enum PRFileType
{
PR_FILE_FILE = 1,
PR_FILE_DIRECTORY = 2,
PR_FILE_OTHER = 3
} PRFileType;
struct PRFileInfo {
PRFileType type;
PROffset32 size;
PRTime creationTime;
PRTime modifyTime;
};
struct PRFileInfo64 {
PRFileType type;
PROffset64 size;
PRTime creationTime;
PRTime modifyTime;
};
# 830 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_GetFileInfo(const char *fn, PRFileInfo *info);
extern PRStatus PR_GetFileInfo64(const char *fn, PRFileInfo64 *info);
# 850 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_GetOpenFileInfo(PRFileDesc *fd, PRFileInfo *info);
extern PRStatus PR_GetOpenFileInfo64(PRFileDesc *fd, PRFileInfo64 *info);
# 869 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_Rename(const char *from, const char *to);
# 895 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
typedef enum PRAccessHow {
PR_ACCESS_EXISTS = 1,
PR_ACCESS_WRITE_OK = 2,
PR_ACCESS_READ_OK = 3
} PRAccessHow;
extern PRStatus PR_Access(const char *name, PRAccessHow how);
# 936 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PROffset32 PR_Seek(PRFileDesc *fd, PROffset32 offset, PRSeekWhence whence);
extern PROffset64 PR_Seek64(PRFileDesc *fd, PROffset64 offset, PRSeekWhence whence);
# 959 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRInt32 PR_Available(PRFileDesc *fd);
extern PRInt64 PR_Available64(PRFileDesc *fd);
# 979 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_Sync(PRFileDesc *fd);
struct PRDirEntry {
const char *name;
};
# 1011 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRDir* PR_OpenDir(const char *name);
# 1036 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
typedef enum PRDirFlags {
PR_SKIP_NONE = 0x0,
PR_SKIP_DOT = 0x1,
PR_SKIP_DOT_DOT = 0x2,
PR_SKIP_BOTH = 0x3,
PR_SKIP_HIDDEN = 0x4
} PRDirFlags;
extern PRDirEntry* PR_ReadDir(PRDir *dir, PRDirFlags flags);
# 1063 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_CloseDir(PRDir *dir);
# 1085 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_MkDir(const char *name, PRIntn mode);
# 1097 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_MakeDir(const char *name, PRIntn mode);
# 1117 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_RmDir(const char *name);
# 1136 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRFileDesc* PR_NewUDPSocket(void);
# 1155 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRFileDesc* PR_NewTCPSocket(void);
# 1175 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRFileDesc* PR_OpenUDPSocket(PRIntn af);
# 1195 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRFileDesc* PR_OpenTCPSocket(PRIntn af);
# 1219 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_Connect(
PRFileDesc *fd, const PRNetAddr *addr, PRIntervalTime timeout);
# 1254 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_ConnectContinue(PRFileDesc *fd, PRInt16 out_flags);
# 1284 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_GetConnectStatus(const PRPollDesc *pd);
# 1308 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRFileDesc* PR_Accept(
PRFileDesc *fd, PRNetAddr *addr, PRIntervalTime timeout);
# 1330 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_Bind(PRFileDesc *fd, const PRNetAddr *addr);
# 1352 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_Listen(PRFileDesc *fd, PRIntn backlog);
# 1376 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
typedef enum PRShutdownHow
{
PR_SHUTDOWN_RCV = 0,
PR_SHUTDOWN_SEND = 1,
PR_SHUTDOWN_BOTH = 2
} PRShutdownHow;
extern PRStatus PR_Shutdown(PRFileDesc *fd, PRShutdownHow how);
# 1416 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRInt32 PR_Recv(PRFileDesc *fd, void *buf, PRInt32 amount,
PRIntn flags, PRIntervalTime timeout);
# 1447 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRInt32 PR_Send(PRFileDesc *fd, const void *buf, PRInt32 amount,
PRIntn flags, PRIntervalTime timeout);
# 1482 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRInt32 PR_RecvFrom(
PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags,
PRNetAddr *addr, PRIntervalTime timeout);
# 1515 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRInt32 PR_SendTo(
PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags,
const PRNetAddr *addr, PRIntervalTime timeout);
# 1555 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRInt32 PR_TransmitFile(
PRFileDesc *networkSocket, PRFileDesc *sourceFile,
const void *headers, PRInt32 hlen, PRTransmitFileFlags flags,
PRIntervalTime timeout);
# 1594 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
struct PRSendFileData {
PRFileDesc *fd;
PRUint32 file_offset;
PRSize file_nbytes;
const void *header;
PRInt32 hlen;
const void *trailer;
PRInt32 tlen;
};
extern PRInt32 PR_SendFile(
PRFileDesc *networkSocket, PRSendFileData *sendData,
PRTransmitFileFlags flags, PRIntervalTime timeout);
# 1661 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRInt32 PR_AcceptRead(
PRFileDesc *listenSock, PRFileDesc **acceptedSock,
PRNetAddr **peerAddr, void *buf, PRInt32 amount, PRIntervalTime timeout);
# 1685 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_NewTCPSocketPair(PRFileDesc *fds[2]);
# 1705 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_GetSockName(PRFileDesc *fd, PRNetAddr *addr);
# 1727 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_GetPeerName(PRFileDesc *fd, PRNetAddr *addr);
extern PRStatus PR_GetSocketOption(
PRFileDesc *fd, PRSocketOptionData *data);
extern PRStatus PR_SetSocketOption(
PRFileDesc *fd, const PRSocketOptionData *data);
# 1762 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_SetFDInheritable(
PRFileDesc *fd,
PRBool inheritable);
# 1782 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRFileDesc * PR_GetInheritedFD(const char *name);
# 1792 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
typedef struct PRFileMap PRFileMap;
typedef enum PRFileMapProtect {
PR_PROT_READONLY,
PR_PROT_READWRITE,
PR_PROT_WRITECOPY
} PRFileMapProtect;
extern PRFileMap * PR_CreateFileMap(
PRFileDesc *fd,
PRInt64 size,
PRFileMapProtect prot);
extern PRInt32 PR_GetMemMapAlignment(void);
extern void * PR_MemMap(
PRFileMap *fmap,
PROffset64 offset,
PRUint32 len);
extern PRStatus PR_MemUnmap(void *addr, PRUint32 len);
extern PRStatus PR_CloseFileMap(PRFileMap *fmap);
# 1836 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRStatus PR_CreatePipe(
PRFileDesc **readPipe,
PRFileDesc **writePipe
);
struct PRPollDesc {
PRFileDesc* fd;
PRInt16 in_flags;
PRInt16 out_flags;
};
# 1914 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRInt32 PR_Poll(
PRPollDesc *pds, PRIntn npds, PRIntervalTime timeout);
# 1958 "/home/nisse/hack/mozilla/dist/include/nspr/prio.h"
extern PRFileDesc * PR_NewPollableEvent(void);
extern PRStatus PR_DestroyPollableEvent(PRFileDesc *event);
extern PRStatus PR_SetPollableEvent(PRFileDesc *event);
extern PRStatus PR_WaitForPollableEvent(PRFileDesc *event);
# 50 "../../../../dist/public/security/certt.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prmon.h" 1
# 51 "../../../../dist/public/security/certt.h" 2
typedef struct CERTAVAStr CERTAVA;
typedef struct CERTAttributeStr CERTAttribute;
typedef struct CERTAuthInfoAccessStr CERTAuthInfoAccess;
typedef struct CERTAuthKeyIDStr CERTAuthKeyID;
typedef struct CERTBasicConstraintsStr CERTBasicConstraints;
typedef struct CERTCertDBHandleStr CERTCertDBHandle;
typedef struct CERTCertExtensionStr CERTCertExtension;
typedef struct CERTCertKeyStr CERTCertKey;
typedef struct CERTCertListStr CERTCertList;
typedef struct CERTCertListNodeStr CERTCertListNode;
typedef struct CERTCertNicknamesStr CERTCertNicknames;
typedef struct CERTCertTrustStr CERTCertTrust;
typedef struct CERTCertificateStr CERTCertificate;
typedef struct CERTCertificateListStr CERTCertificateList;
typedef struct CERTCertificateRequestStr CERTCertificateRequest;
typedef struct CERTCrlStr CERTCrl;
typedef struct CERTCrlDistributionPointsStr CERTCrlDistributionPoints;
typedef struct CERTCrlEntryStr CERTCrlEntry;
typedef struct CERTCrlHeadNodeStr CERTCrlHeadNode;
typedef struct CERTCrlKeyStr CERTCrlKey;
typedef struct CERTCrlNodeStr CERTCrlNode;
typedef struct CERTDERCertsStr CERTDERCerts;
typedef struct CERTDistNamesStr CERTDistNames;
typedef struct CERTGeneralNameStr CERTGeneralName;
typedef struct CERTGeneralNameListStr CERTGeneralNameList;
typedef struct CERTIssuerAndSNStr CERTIssuerAndSN;
typedef struct CERTNameStr CERTName;
typedef struct CERTNameConstraintStr CERTNameConstraint;
typedef struct CERTNameConstraintsStr CERTNameConstraints;
typedef struct CERTOKDomainNameStr CERTOKDomainName;
typedef struct CERTPublicKeyAndChallengeStr CERTPublicKeyAndChallenge;
typedef struct CERTRDNStr CERTRDN;
typedef struct CERTSignedCrlStr CERTSignedCrl;
typedef struct CERTSignedDataStr CERTSignedData;
typedef struct CERTStatusConfigStr CERTStatusConfig;
typedef struct CERTSubjectListStr CERTSubjectList;
typedef struct CERTSubjectNodeStr CERTSubjectNode;
typedef struct CERTSubjectPublicKeyInfoStr CERTSubjectPublicKeyInfo;
typedef struct CERTValidityStr CERTValidity;
typedef struct CERTVerifyLogStr CERTVerifyLog;
typedef struct CERTVerifyLogNodeStr CERTVerifyLogNode;
typedef struct CRLDistributionPointStr CRLDistributionPoint;
typedef unsigned long CERTCrlNumber;
struct CERTAVAStr {
SECItem type;
SECItem value;
};
struct CERTRDNStr {
CERTAVA **avas;
};
struct CERTNameStr {
PLArenaPool *arena;
CERTRDN **rdns;
};
struct CERTValidityStr {
PLArenaPool *arena;
SECItem notBefore;
SECItem notAfter;
};
struct CERTCertKeyStr {
SECItem serialNumber;
SECItem derIssuer;
};
struct CERTSignedDataStr {
SECItem data;
SECAlgorithmID signatureAlgorithm;
SECItem signature;
};
struct CERTSubjectPublicKeyInfoStr {
PLArenaPool *arena;
SECAlgorithmID algorithm;
SECItem subjectPublicKey;
};
struct CERTPublicKeyAndChallengeStr {
SECItem spki;
SECItem challenge;
};
typedef struct _certDBEntryCert certDBEntryCert;
typedef struct _certDBEntryRevocation certDBEntryRevocation;
struct CERTCertTrustStr {
unsigned int sslFlags;
unsigned int emailFlags;
unsigned int objectSigningFlags;
};
typedef enum {
trustSSL = 0,
trustEmail = 1,
trustObjectSigning = 2,
trustTypeNone = 3
} SECTrustType;
# 190 "../../../../dist/public/security/certt.h"
struct CERTCertExtensionStr {
SECItem id;
SECItem critical;
SECItem value;
};
struct CERTSubjectNodeStr {
struct CERTSubjectNodeStr *next;
struct CERTSubjectNodeStr *prev;
SECItem certKey;
SECItem keyID;
};
struct CERTSubjectListStr {
PLArenaPool *arena;
int ncerts;
char *emailAddr;
CERTSubjectNode *head;
CERTSubjectNode *tail;
struct _certDBEntrySubject *entry;
};
struct CERTCertificateStr {
PLArenaPool *arena;
char *subjectName;
char *issuerName;
CERTSignedData signatureWrap;
SECItem derCert;
SECItem derIssuer;
SECItem derSubject;
SECItem derPublicKey;
SECItem certKey;
SECItem version;
SECItem serialNumber;
SECAlgorithmID signature;
CERTName issuer;
CERTValidity validity;
CERTName subject;
CERTSubjectPublicKeyInfo subjectPublicKeyInfo;
SECItem issuerID;
SECItem subjectID;
CERTCertExtension **extensions;
char *emailAddr;
CERTCertDBHandle *dbhandle;
SECItem subjectKeyID;
PRBool keyIDGenerated;
unsigned int keyUsage;
unsigned int rawKeyUsage;
PRBool keyUsagePresent;
unsigned int nsCertType;
PRBool keepSession;
PRBool timeOK;
CERTOKDomainName *domainOK;
PRBool isperm;
PRBool istemp;
char *nickname;
char *dbnickname;
certDBEntryCert *dbEntry;
CERTCertTrust *trust;
int referenceCount;
CERTSubjectList *subjectList;
struct SECSocketNode *socketlist;
int socketcount;
struct SECSocketNode *authsocketlist;
int authsocketcount;
PK11SlotInfo *slot;
CK_OBJECT_HANDLE pkcs11ID;
PRBool ownSlot;
};
# 313 "../../../../dist/public/security/certt.h"
struct CERTDERCertsStr {
PLArenaPool *arena;
int numcerts;
SECItem *rawCerts;
};
struct CERTAttributeStr {
SECItem attrType;
SECItem **attrValue;
};
struct CERTCertificateRequestStr {
PLArenaPool *arena;
SECItem version;
CERTName subject;
CERTSubjectPublicKeyInfo subjectPublicKeyInfo;
SECItem **attributes;
};
struct CERTCertificateListStr {
SECItem *certs;
int len;
PLArenaPool *arena;
};
struct CERTCertListNodeStr {
PRCList links;
CERTCertificate *cert;
void *appData;
};
struct CERTCertListStr {
PRCList list;
PLArenaPool *arena;
};
struct CERTCrlEntryStr {
SECItem serialNumber;
SECItem revocationDate;
CERTCertExtension **extensions;
};
struct CERTCrlStr {
PLArenaPool *arena;
SECItem version;
SECAlgorithmID signatureAlg;
SECItem derName;
CERTName name;
SECItem lastUpdate;
SECItem nextUpdate;
CERTCrlEntry **entries;
CERTCertExtension **extensions;
};
struct CERTCrlKeyStr {
SECItem derName;
SECItem dummy;
};
struct CERTSignedCrlStr {
PLArenaPool *arena;
CERTCrl crl;
certDBEntryRevocation *dbEntry;
PRBool keep;
PRBool isperm;
PRBool istemp;
int referenceCount;
CERTCertDBHandle *dbhandle;
CERTSignedData signatureWrap;
char *url;
};
struct CERTCrlHeadNodeStr {
PLArenaPool *arena;
CERTCertDBHandle *dbhandle;
CERTCrlNode *first;
CERTCrlNode *last;
};
struct CERTCrlNodeStr {
CERTCrlNode *next;
int type;
CERTSignedCrl *crl;
};
struct CERTDistNamesStr {
PLArenaPool *arena;
int nnames;
SECItem *names;
void *head;
};
# 453 "../../../../dist/public/security/certt.h"
typedef enum {
certUsageSSLClient = 0,
certUsageSSLServer = 1,
certUsageSSLServerWithStepUp = 2,
certUsageSSLCA = 3,
certUsageEmailSigner = 4,
certUsageEmailRecipient = 5,
certUsageObjectSigner = 6,
certUsageUserCertImport = 7,
certUsageVerifyCA = 8,
certUsageProtectedObjectSigner = 9,
certUsageStatusResponder = 10,
certUsageAnyCA = 11
} SECCertUsage;
typedef enum {
certOwnerUser = 0,
certOwnerPeer = 1,
certOwnerCA = 2
} CERTCertOwner;
typedef enum {
secCertTimeValid = 0,
secCertTimeExpired = 1,
secCertTimeNotValidYet = 2
} SECCertTimeValidity;
# 496 "../../../../dist/public/security/certt.h"
struct CERTCertNicknamesStr {
PLArenaPool *arena;
void *head;
int numnicknames;
char **nicknames;
int what;
int totallen;
};
struct CERTIssuerAndSNStr {
SECItem derIssuer;
CERTName issuer;
SECItem serialNumber;
};
# 549 "../../../../dist/public/security/certt.h"
struct CERTBasicConstraintsStr {
PRBool isCA;
int pathLenConstraint;
};
# 571 "../../../../dist/public/security/certt.h"
typedef enum {
certOtherName = 1,
certRFC822Name = 2,
certDNSName = 3,
certX400Address = 4,
certDirectoryName = 5,
certEDIPartyName = 6,
certURI = 7,
certIPAddress = 8,
certRegisterID = 9
} CERTGeneralNameType;
typedef struct OtherNameStr {
SECItem name;
SECItem oid;
}OtherName;
struct CERTGeneralNameStr {
CERTGeneralNameType type;
union {
CERTName directoryName;
OtherName OthName;
SECItem other;
}name;
SECItem derDirectoryName;
PRCList l;
};
struct CERTGeneralNameListStr {
PLArenaPool *arena;
CERTGeneralName *name;
int refCount;
int len;
PRLock *lock;
};
struct CERTNameConstraintStr {
CERTGeneralName name;
SECItem DERName;
SECItem min;
SECItem max;
PRCList l;
};
struct CERTNameConstraintsStr {
CERTNameConstraint *permited;
CERTNameConstraint *excluded;
SECItem **DERPermited;
SECItem **DERExcluded;
};
struct CERTAuthKeyIDStr {
SECItem keyID;
CERTGeneralName *authCertIssuer;
SECItem authCertSerialNumber;
SECItem **DERAuthCertIssuer;
};
typedef enum {
generalName = 1,
relativeDistinguishedName = 2
} DistributionPointTypes;
struct CRLDistributionPointStr {
DistributionPointTypes distPointType;
union {
CERTGeneralName *fullName;
CERTRDN relativeName;
} distPoint;
SECItem reasons;
CERTGeneralName *crlIssuer;
SECItem derDistPoint;
SECItem derRelativeName;
SECItem **derCrlIssuer;
SECItem **derFullName;
SECItem bitsmap;
};
struct CERTCrlDistributionPointsStr {
CRLDistributionPoint **distPoints;
};
struct CERTVerifyLogNodeStr {
CERTCertificate *cert;
long error;
unsigned int depth;
void *arg;
struct CERTVerifyLogNodeStr *next;
struct CERTVerifyLogNodeStr *prev;
};
struct CERTVerifyLogStr {
PLArenaPool *arena;
unsigned int count;
struct CERTVerifyLogNodeStr *head;
struct CERTVerifyLogNodeStr *tail;
};
struct CERTOKDomainNameStr {
CERTOKDomainName *next;
char name[1];
};
typedef SECStatus ( *CERTStatusChecker) (CERTCertDBHandle *handle,
CERTCertificate *cert,
int64 time,
void *pwArg);
typedef SECStatus ( *CERTStatusDestroy) (CERTStatusConfig *handle);
struct CERTStatusConfigStr {
CERTStatusChecker statusChecker;
CERTStatusDestroy statusDestroy;
void *statusContext;
};
struct CERTAuthInfoAccessStr {
SECItem method;
SECItem derLocation;
CERTGeneralName *location;
};
typedef char * (*CERTDBNameFunc)(void *arg, int dbVersion);
typedef enum {
certPackageNone = 0,
certPackageCert = 1,
certPackagePKCS7 = 2,
certPackageNSCertSeq = 3,
certPackageNSCertWrap = 4
} CERTPackageType;
typedef struct {
SECOidTag oid;
SECItem qualifierID;
SECItem qualifierValue;
} CERTPolicyQualifier;
typedef struct {
SECOidTag oid;
SECItem policyID;
CERTPolicyQualifier **policyQualifiers;
} CERTPolicyInfo;
typedef struct {
PLArenaPool *arena;
CERTPolicyInfo **policyInfos;
} CERTCertificatePolicies;
typedef struct {
SECItem organization;
SECItem **noticeNumbers;
} CERTNoticeReference;
typedef struct {
PLArenaPool *arena;
CERTNoticeReference noticeReference;
SECItem derNoticeReference;
SECItem displayText;
} CERTUserNotice;
typedef struct {
PLArenaPool *arena;
SECItem **oids;
} CERTOidSequence;
# 1 "../../../../dist/public/security/secasn1t.h" 1
# 779 "../../../../dist/public/security/certt.h" 2
extern const SEC_ASN1Template CERT_CertificateRequestTemplate[];
extern const SEC_ASN1Template CERT_CertificateTemplate[];
extern const SEC_ASN1Template SEC_SignedCertificateTemplate[];
extern const SEC_ASN1Template CERT_CertExtensionTemplate[];
extern const SEC_ASN1Template CERT_SequenceOfCertExtensionTemplate[];
extern const SEC_ASN1Template SECKEY_PublicKeyTemplate[];
extern const SEC_ASN1Template CERT_SubjectPublicKeyInfoTemplate[];
extern const SEC_ASN1Template CERT_ValidityTemplate[];
extern const SEC_ASN1Template CERT_PublicKeyAndChallengeTemplate[];
extern const SEC_ASN1Template SEC_CertSequenceTemplate[];
extern const SEC_ASN1Template CERT_IssuerAndSNTemplate[];
extern const SEC_ASN1Template CERT_NameTemplate[];
extern const SEC_ASN1Template CERT_SetOfSignedCrlTemplate[];
extern const SEC_ASN1Template CERT_RDNTemplate[];
extern const SEC_ASN1Template CERT_SignedDataTemplate[];
extern const SEC_ASN1Template CERT_CrlTemplate[];
extern const SEC_ASN1Template CERT_AttributeTemplate[];
extern const SEC_ASN1Template CERT_SetOfAttributeTemplate[];
extern const SEC_ASN1Template * NSS_Get_CERT_CertificateRequestTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_CERT_CertificateTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_CERT_CrlTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_CERT_IssuerAndSNTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_CERT_SetOfSignedCrlTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_CERT_SignedDataTemplate (void *arg, PRBool enc);
# 49 "../../../../dist/public/security/keyhi.h" 2
# 1 "../../../../dist/public/security/secpkcs5.h" 1
# 37 "../../../../dist/public/security/secpkcs5.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 38 "../../../../dist/public/security/secpkcs5.h" 2
# 1 "../../../../dist/public/security/secitem.h" 1
# 39 "../../../../dist/public/security/secpkcs5.h" 2
# 1 "../../../../dist/public/security/seccomon.h" 1
# 40 "../../../../dist/public/security/secpkcs5.h" 2
# 1 "../../../../dist/public/security/secoidt.h" 1
# 41 "../../../../dist/public/security/secpkcs5.h" 2
# 1 "../../../../dist/public/security/hasht.h" 1
# 42 "../../../../dist/public/security/hasht.h"
typedef struct SECHashObjectStr SECHashObject;
typedef struct HASHContextStr HASHContext;
typedef enum {
HASH_AlgNULL = 0,
HASH_AlgMD2 = 1,
HASH_AlgMD5 = 2,
HASH_AlgSHA1 = 3,
HASH_AlgTOTAL
} HASH_HashType;
# 67 "../../../../dist/public/security/hasht.h"
struct SECHashObjectStr {
unsigned int length;
void * (*create)(void);
void * (*clone)(void *);
void (*destroy)(void *, PRBool);
void (*begin)(void *);
void (*update)(void *, const unsigned char *, unsigned int);
void (*end)(void *, unsigned char *, unsigned int *, unsigned int);
};
struct HASHContextStr {
const struct SECHashObjectStr *hashobj;
void *hash_context;
};
extern const SECHashObject SECHashObjects[];
extern const SECHashObject SECRawHashObjects[];
# 42 "../../../../dist/public/security/secpkcs5.h" 2
typedef SECItem * (* SEC_PKCS5GetPBEPassword)(void *arg);
typedef enum {
pbeBitGenIDNull = 0,
pbeBitGenCipherKey = 0x01,
pbeBitGenCipherIV = 0x02,
pbeBitGenIntegrityKey = 0x03
} PBEBitGenID;
typedef struct _pbeBitGenParameters {
unsigned int u, v;
SECOidTag hashAlgorithm;
} pbeBitGenParameters;
typedef struct _PBEBitGenContext {
PLArenaPool *arena;
pbeBitGenParameters pbeParams;
const SECHashObject *hashObject;
void *hash;
SECItem D, S, P, I, A, B;
unsigned int c, n;
unsigned int iterations;
} PBEBitGenContext;
extern const SEC_ASN1Template SEC_PKCS5PBEParameterTemplate[];
typedef struct SEC_PKCS5PBEParameterStr SEC_PKCS5PBEParameter;
struct SEC_PKCS5PBEParameterStr {
PLArenaPool *poolp;
SECItem salt;
SECItem iteration;
SECOidTag algorithm;
int iter;
};
# 98 "../../../../dist/public/security/secpkcs5.h"
extern SECAlgorithmID *
SEC_PKCS5CreateAlgorithmID(SECOidTag algorithm,
SECItem *salt,
int iteration);
# 110 "../../../../dist/public/security/secpkcs5.h"
extern SECItem *
SEC_PKCS5GetIV(SECAlgorithmID *algid, SECItem *pwitem, PRBool faulty3DES);
# 120 "../../../../dist/public/security/secpkcs5.h"
extern SECItem *
SEC_PKCS5GetKey(SECAlgorithmID *algid, SECItem *pwitem, PRBool faulty3DES);
extern SECItem *
SEC_PKCS5GetSalt(SECAlgorithmID *algid);
# 140 "../../../../dist/public/security/secpkcs5.h"
extern SECItem *
SEC_PKCS5CipherData(SECAlgorithmID *algid, SECItem *pwitem,
SECItem *src, PRBool encrypt, PRBool *update);
extern PRBool
SEC_PKCS5IsAlgorithmPBEAlg(SECAlgorithmID *algid);
extern void
SEC_PKCS5DestroyPBEParameter(SEC_PKCS5PBEParameter *param);
extern SEC_PKCS5PBEParameter *
SEC_PKCS5GetPBEParameter(SECAlgorithmID *algid);
extern int
SEC_PKCS5GetKeyLength(SECAlgorithmID *algid);
extern SECOidTag
SEC_PKCS5GetPBEAlgorithm(SECOidTag algTag, int keyLen);
extern SECOidTag
SEC_PKCS5GetCryptoAlgorithm(SECAlgorithmID *algid);
extern PBEBitGenContext *
__PBE_CreateContext(SECOidTag hashAlgorithm, PBEBitGenID bitGenPurpose,
SECItem *pwitem, SECItem *salt, unsigned int bitsNeeded,
unsigned int interations);
extern SECItem *
__PBE_GenerateBits(PBEBitGenContext *pbeCtxt);
extern void __PBE_DestroyContext(PBEBitGenContext *pbeCtxt);
extern SECStatus PBE_PK11ParamToAlgid(SECOidTag algTag, SECItem *param,
PLArenaPool *arena, SECAlgorithmID *algId);
# 50 "../../../../dist/public/security/keyhi.h" 2
extern void SECKEY_DestroySubjectPublicKeyInfo(CERTSubjectPublicKeyInfo *spki);
extern SECStatus SECKEY_CopySubjectPublicKeyInfo(PLArenaPool *arena,
CERTSubjectPublicKeyInfo *dst,
CERTSubjectPublicKeyInfo *src);
extern SECStatus
SECKEY_UpdateCertPQG(CERTCertificate * subjectCert);
extern SECStatus
SECKEY_KEAParamCompare(CERTCertificate *cert1,CERTCertificate *cert2);
extern unsigned SECKEY_PublicKeyStrength(SECKEYPublicKey *pubk);
extern SECKEYPrivateKey *SECKEY_CopyPrivateKey(SECKEYPrivateKey *privKey);
extern SECKEYPublicKey *SECKEY_CopyPublicKey(SECKEYPublicKey *pubKey);
extern SECKEYPublicKey *SECKEY_ConvertToPublicKey(SECKEYPrivateKey *privateKey);
SECKEYPrivateKey *SECKEY_CreateRSAPrivateKey(int keySizeInBits,
SECKEYPublicKey **pubk, void *cx);
SECKEYPrivateKey *SECKEY_CreateDHPrivateKey(DHParams *param,
SECKEYPublicKey **pubk, void *cx);
extern CERTSubjectPublicKeyInfo *
SECKEY_CreateSubjectPublicKeyInfo(SECKEYPublicKey *k);
extern SECKEYPublicKey *SECKEY_DecodeDERPublicKey(SECItem *pubkder);
extern SECKEYPublicKey *SECKEY_ConvertAndDecodePublicKey(char *pubkstr);
extern CERTSubjectPublicKeyInfo *
SECKEY_ConvertAndDecodePublicKeyAndChallenge(char *pkacstr, char *challenge,
void *cx);
SECItem *
SECKEY_EncodeDERSubjectPublicKeyInfo(SECKEYPublicKey *pubk);
extern CERTSubjectPublicKeyInfo *
SECKEY_DecodeDERSubjectPublicKeyInfo(SECItem *spkider);
extern CERTSubjectPublicKeyInfo *
SECKEY_ConvertAndDecodeSubjectPublicKeyInfo(char *spkistr);
extern SECKEYPublicKey *
SECKEY_ExtractPublicKey(CERTSubjectPublicKeyInfo *);
extern void SECKEY_DestroyPrivateKey(SECKEYPrivateKey *key);
extern void SECKEY_DestroyPublicKey(SECKEYPublicKey *key);
# 186 "../../../../dist/public/security/keyhi.h"
extern void
SECKEY_DestroyPrivateKeyInfo(SECKEYPrivateKeyInfo *pvk, PRBool freeit);
extern void
SECKEY_DestroyEncryptedPrivateKeyInfo(SECKEYEncryptedPrivateKeyInfo *epki,
PRBool freeit);
# 207 "../../../../dist/public/security/keyhi.h"
extern SECStatus
SECKEY_CopyPrivateKeyInfo(PLArenaPool *poolp,
SECKEYPrivateKeyInfo *to,
SECKEYPrivateKeyInfo *from);
# 220 "../../../../dist/public/security/keyhi.h"
extern SECStatus
SECKEY_CopyEncryptedPrivateKeyInfo(PLArenaPool *poolp,
SECKEYEncryptedPrivateKeyInfo *to,
SECKEYEncryptedPrivateKeyInfo *from);
KeyType SECKEY_GetPrivateKeyType(SECKEYPrivateKey *privKey);
KeyType SECKEY_GetPublicKeyType(SECKEYPublicKey *pubKey);
SECKEYPublicKey*
SECKEY_ImportDERPublicKey(SECItem *derKey, CK_KEY_TYPE type);
SECKEYPrivateKeyList*
SECKEY_NewPrivateKeyList(void);
void
SECKEY_DestroyPrivateKeyList(SECKEYPrivateKeyList *keys);
void
SECKEY_RemovePrivateKeyListNode(SECKEYPrivateKeyListNode *node);
SECStatus
SECKEY_AddPrivateKeyToListTail( SECKEYPrivateKeyList *list,
SECKEYPrivateKey *key);
# 42 "../../../../dist/public/security/key.h" 2
# 1 "../../../../dist/public/security/keylow.h" 1
# 41 "../../../../dist/public/security/keylow.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 1
# 42 "../../../../dist/public/security/keylow.h" 2
# 1 "../../../../dist/public/security/seccomon.h" 1
# 43 "../../../../dist/public/security/keylow.h" 2
# 1 "../../../../dist/public/security/keydbt.h" 1
# 41 "../../../../dist/public/security/keydbt.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 1
# 42 "../../../../dist/public/security/keydbt.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 43 "../../../../dist/public/security/keydbt.h" 2
# 1 "../../../../dist/public/security/secitem.h" 1
# 44 "../../../../dist/public/security/keydbt.h" 2
# 1 "../../../../dist/public/security/secasn1t.h" 1
# 45 "../../../../dist/public/security/keydbt.h" 2
# 1 "../../../../dist/public/security/secmodt.h" 1
# 46 "../../../../dist/public/security/keydbt.h" 2
# 1 "../../../../dist/public/security/pkcs11t.h" 1
# 47 "../../../../dist/public/security/keydbt.h" 2
struct SECKEYDBKeyStr {
PLArenaPool *arena;
int version;
char *nickname;
SECItem salt;
SECItem derPK;
};
typedef struct SECKEYDBKeyStr SECKEYDBKey;
typedef struct SECKEYKeyDBHandleStr SECKEYKeyDBHandle;
# 70 "../../../../dist/public/security/keydbt.h"
typedef SECItem * (* SECKEYGetPasswordKey)(void *arg,
SECKEYKeyDBHandle *handle);
extern const SEC_ASN1Template SECKEY_EncryptedPrivateKeyInfoTemplate[];
extern const SEC_ASN1Template SECKEY_RSAPublicKeyTemplate[];
extern const SEC_ASN1Template SECKEY_RSAPrivateKeyTemplate[];
extern const SEC_ASN1Template SECKEY_DSAPublicKeyTemplate[];
extern const SEC_ASN1Template SECKEY_DSAPrivateKeyTemplate[];
extern const SEC_ASN1Template SECKEY_DSAPrivateKeyExportTemplate[];
extern const SEC_ASN1Template SECKEY_DHPrivateKeyTemplate[];
extern const SEC_ASN1Template SECKEY_DHPrivateKeyExportTemplate[];
extern const SEC_ASN1Template SECKEY_PrivateKeyInfoTemplate[];
extern const SEC_ASN1Template SECKEY_DHPublicKeyTemplate[];
extern const SEC_ASN1Template SECKEY_DHParamKeyTemplate[];
extern const SEC_ASN1Template SECKEY_PointerToEncryptedPrivateKeyInfoTemplate[];
extern const SEC_ASN1Template SECKEY_PointerToPrivateKeyInfoTemplate[];
extern const SEC_ASN1Template SECKEY_PQGParamsTemplate[];
extern const SEC_ASN1Template SECKEY_AttributeTemplate[];
extern SEC_ASN1TemplateChooser NSS_Get_SECKEY_PrivateKeyInfoTemplate;
extern SEC_ASN1TemplateChooser NSS_Get_SECKEY_PointerToPrivateKeyInfoTemplate;
extern SEC_ASN1TemplateChooser NSS_Get_SECKEY_EncryptedPrivateKeyInfoTemplate;
extern SEC_ASN1TemplateChooser NSS_Get_SECKEY_PointerToEncryptedPrivateKeyInfoTemplate;
extern SEC_ASN1TemplateChooser NSS_Get_SECKEY_DSAPublicKeyTemplate;
extern SEC_ASN1TemplateChooser NSS_Get_SECKEY_RSAPublicKeyTemplate;
# 44 "../../../../dist/public/security/keylow.h" 2
# 1 "../../../../dist/public/security/secoidt.h" 1
# 45 "../../../../dist/public/security/keylow.h" 2
# 1 "../../../../dist/public/security/certt.h" 1
# 46 "../../../../dist/public/security/keylow.h" 2
# 1 "../../../../dist/public/security/keythi.h" 1
# 47 "../../../../dist/public/security/keylow.h" 2
typedef char * (* SECKEYDBNameFunc)(void *arg, int dbVersion);
extern SECKEYKeyDBHandle *SECKEY_OpenKeyDB(PRBool readOnly,
SECKEYDBNameFunc namecb,
void *cbarg);
extern SECKEYKeyDBHandle *SECKEY_OpenKeyDBFilename(char *filename,
PRBool readOnly);
extern SECStatus SECKEY_UpdateKeyDBPass1(SECKEYKeyDBHandle *handle);
extern SECStatus SECKEY_UpdateKeyDBPass2(SECKEYKeyDBHandle *handle,
SECItem *pwitem);
extern SECStatus SECKEY_ResetKeyDB(SECKEYKeyDBHandle *handle);
extern void SECKEY_CloseKeyDB(SECKEYKeyDBHandle *handle);
extern int SECKEY_GetKeyDBVersion(SECKEYKeyDBHandle *handle);
extern void SECKEY_SetDefaultKeyDB(SECKEYKeyDBHandle *handle);
extern SECKEYKeyDBHandle *SECKEY_GetDefaultKeyDB(void);
extern void SECKEY_SetDefaultKeyDBAlg(SECOidTag alg);
extern SECItem *SECKEY_HashPassword(char *pw, SECItem *salt);
extern SECItem *
SECKEY_DeriveKeyDBPassword(SECKEYKeyDBHandle *handle, char *pw);
extern SECStatus SECKEY_DeleteKey(SECKEYKeyDBHandle *handle,
SECItem *pubkey);
extern SECStatus SECKEY_StoreKeyByPublicKey(SECKEYKeyDBHandle *handle,
SECKEYLowPrivateKey *pk,
SECItem *pubKeyData,
char *nickname,
SECKEYGetPasswordKey f, void *arg);
extern SECStatus SECKEY_KeyForCertExists(SECKEYKeyDBHandle *handle,
CERTCertificate *cert);
SECKEYLowPrivateKey *
SECKEY_FindKeyByCert(SECKEYKeyDBHandle *handle, CERTCertificate *cert,
SECKEYGetPasswordKey f, void *arg);
extern SECStatus SECKEY_HasKeyDBPassword(SECKEYKeyDBHandle *handle);
extern SECStatus SECKEY_SetKeyDBPassword(SECKEYKeyDBHandle *handle,
SECItem *pwitem);
extern SECStatus SECKEY_CheckKeyDBPassword(SECKEYKeyDBHandle *handle,
SECItem *pwitem);
extern SECStatus SECKEY_ChangeKeyDBPassword(SECKEYKeyDBHandle *handle,
SECItem *oldpwitem,
SECItem *newpwitem);
extern void SECKEY_LowDestroyPrivateKey(SECKEYLowPrivateKey *key);
extern void SECKEY_LowDestroyPublicKey(SECKEYLowPublicKey *key);
extern unsigned int SECKEY_LowPublicModulusLen(SECKEYLowPublicKey *pubKey);
extern unsigned int SECKEY_LowPrivateModulusLen(SECKEYLowPrivateKey *privKey);
extern SECKEYLowPublicKey
*SECKEY_LowConvertToPublicKey(SECKEYLowPrivateKey *privateKey);
# 182 "../../../../dist/public/security/keylow.h"
extern SECStatus
SECKEY_SetKeyDBPasswordAlg(SECKEYKeyDBHandle *handle,
SECItem *pwitem,
SECOidTag algorithm);
# 195 "../../../../dist/public/security/keylow.h"
extern SECStatus
SECKEY_CheckKeyDBPasswordAlg(SECKEYKeyDBHandle *handle,
SECItem *pwitem,
SECOidTag algorithm);
# 211 "../../../../dist/public/security/keylow.h"
extern SECStatus
SECKEY_ChangeKeyDBPasswordAlg(SECKEYKeyDBHandle *handle,
SECItem *oldpwitem, SECItem *newpwitem,
SECOidTag old_algorithm);
# 224 "../../../../dist/public/security/keylow.h"
extern SECStatus
SECKEY_StoreKeyByPublicKeyAlg(SECKEYKeyDBHandle *handle,
SECKEYLowPrivateKey *privkey,
SECItem *pubKeyData,
char *nickname,
SECKEYGetPasswordKey f, void *arg,
SECOidTag algorithm);
extern SECKEYLowPrivateKey *
SECKEY_FindKeyByPublicKey(SECKEYKeyDBHandle *handle, SECItem *modulus,
SECKEYGetPasswordKey f, void *arg);
extern SECKEYLowPrivateKey *
SECKEY_CopyLowPrivateKey(SECKEYLowPrivateKey *privKey);
# 43 "../../../../dist/public/security/key.h" 2
# 39 "p12t.h" 2
# 1 "../../../../dist/public/security/pkcs11.h" 1
# 238 "../../../../dist/public/security/pkcs11.h"
# 1 "../../../../dist/public/security/pkcs11t.h" 1
# 239 "../../../../dist/public/security/pkcs11.h" 2
# 1 "../../../../dist/public/security/pkcs11p.h" 1
# 245 "../../../../dist/public/security/pkcs11.h" 2
# 256 "../../../../dist/public/security/pkcs11.h"
# 1 "../../../../dist/public/security/pkcs11f.h" 1
# 50 "../../../../dist/public/security/pkcs11f.h"
extern CK_RV C_Initialize
(
CK_VOID_PTR pInitArgs
);
extern CK_RV C_Finalize
(
CK_VOID_PTR pReserved
);
extern CK_RV C_GetInfo
(
CK_INFO_PTR pInfo
);
extern CK_RV C_GetFunctionList
(
CK_FUNCTION_LIST_PTR_PTR ppFunctionList
);
extern CK_RV C_GetSlotList
(
CK_BBOOL tokenPresent,
CK_SLOT_ID_PTR pSlotList,
CK_ULONG_PTR pulCount
);
extern CK_RV C_GetSlotInfo
(
CK_SLOT_ID slotID,
CK_SLOT_INFO_PTR pInfo
);
extern CK_RV C_GetTokenInfo
(
CK_SLOT_ID slotID,
CK_TOKEN_INFO_PTR pInfo
);
extern CK_RV C_GetMechanismList
(
CK_SLOT_ID slotID,
CK_MECHANISM_TYPE_PTR pMechanismList,
CK_ULONG_PTR pulCount
);
extern CK_RV C_GetMechanismInfo
(
CK_SLOT_ID slotID,
CK_MECHANISM_TYPE type,
CK_MECHANISM_INFO_PTR pInfo
);
extern CK_RV C_InitToken
(
CK_SLOT_ID slotID,
CK_CHAR_PTR pPin,
CK_ULONG ulPinLen,
CK_CHAR_PTR pLabel
);
extern CK_RV C_InitPIN
(
CK_SESSION_HANDLE hSession,
CK_CHAR_PTR pPin,
CK_ULONG ulPinLen
);
extern CK_RV C_SetPIN
(
CK_SESSION_HANDLE hSession,
CK_CHAR_PTR pOldPin,
CK_ULONG ulOldLen,
CK_CHAR_PTR pNewPin,
CK_ULONG ulNewLen
);
# 190 "../../../../dist/public/security/pkcs11f.h"
extern CK_RV C_OpenSession
(
CK_SLOT_ID slotID,
CK_FLAGS flags,
CK_VOID_PTR pApplication,
CK_NOTIFY Notify,
CK_SESSION_HANDLE_PTR phSession
);
extern CK_RV C_CloseSession
(
CK_SESSION_HANDLE hSession
);
extern CK_RV C_CloseAllSessions
(
CK_SLOT_ID slotID
);
extern CK_RV C_GetSessionInfo
(
CK_SESSION_HANDLE hSession,
CK_SESSION_INFO_PTR pInfo
);
extern CK_RV C_GetOperationState
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pOperationState,
CK_ULONG_PTR pulOperationStateLen
);
extern CK_RV C_SetOperationState
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pOperationState,
CK_ULONG ulOperationStateLen,
CK_OBJECT_HANDLE hEncryptionKey,
CK_OBJECT_HANDLE hAuthenticationKey
);
extern CK_RV C_Login
(
CK_SESSION_HANDLE hSession,
CK_USER_TYPE userType,
CK_CHAR_PTR pPin,
CK_ULONG ulPinLen
);
extern CK_RV C_Logout
(
CK_SESSION_HANDLE hSession
);
extern CK_RV C_CreateObject
(
CK_SESSION_HANDLE hSession,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount,
CK_OBJECT_HANDLE_PTR phObject
);
extern CK_RV C_CopyObject
(
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hObject,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount,
CK_OBJECT_HANDLE_PTR phNewObject
);
extern CK_RV C_DestroyObject
(
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hObject
);
extern CK_RV C_GetObjectSize
(
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hObject,
CK_ULONG_PTR pulSize
);
extern CK_RV C_GetAttributeValue
(
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hObject,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount
);
extern CK_RV C_SetAttributeValue
(
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hObject,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount
);
extern CK_RV C_FindObjectsInit
(
CK_SESSION_HANDLE hSession,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount
);
extern CK_RV C_FindObjects
(
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE_PTR phObject,
CK_ULONG ulMaxObjectCount,
CK_ULONG_PTR pulObjectCount
);
extern CK_RV C_FindObjectsFinal
(
CK_SESSION_HANDLE hSession
);
extern CK_RV C_EncryptInit
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey
);
extern CK_RV C_Encrypt
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pData,
CK_ULONG ulDataLen,
CK_BYTE_PTR pEncryptedData,
CK_ULONG_PTR pulEncryptedDataLen
);
extern CK_RV C_EncryptUpdate
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pPart,
CK_ULONG ulPartLen,
CK_BYTE_PTR pEncryptedPart,
CK_ULONG_PTR pulEncryptedPartLen
);
extern CK_RV C_EncryptFinal
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pLastEncryptedPart,
CK_ULONG_PTR pulLastEncryptedPartLen
);
extern CK_RV C_DecryptInit
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey
);
extern CK_RV C_Decrypt
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pEncryptedData,
CK_ULONG ulEncryptedDataLen,
CK_BYTE_PTR pData,
CK_ULONG_PTR pulDataLen
);
extern CK_RV C_DecryptUpdate
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pEncryptedPart,
CK_ULONG ulEncryptedPartLen,
CK_BYTE_PTR pPart,
CK_ULONG_PTR pulPartLen
);
extern CK_RV C_DecryptFinal
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pLastPart,
CK_ULONG_PTR pulLastPartLen
);
extern CK_RV C_DigestInit
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism
);
extern CK_RV C_Digest
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pData,
CK_ULONG ulDataLen,
CK_BYTE_PTR pDigest,
CK_ULONG_PTR pulDigestLen
);
extern CK_RV C_DigestUpdate
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pPart,
CK_ULONG ulPartLen
);
extern CK_RV C_DigestKey
(
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hKey
);
extern CK_RV C_DigestFinal
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pDigest,
CK_ULONG_PTR pulDigestLen
);
# 562 "../../../../dist/public/security/pkcs11f.h"
extern CK_RV C_SignInit
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey
);
extern CK_RV C_Sign
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pData,
CK_ULONG ulDataLen,
CK_BYTE_PTR pSignature,
CK_ULONG_PTR pulSignatureLen
);
extern CK_RV C_SignUpdate
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pPart,
CK_ULONG ulPartLen
);
extern CK_RV C_SignFinal
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pSignature,
CK_ULONG_PTR pulSignatureLen
);
extern CK_RV C_SignRecoverInit
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey
);
extern CK_RV C_SignRecover
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pData,
CK_ULONG ulDataLen,
CK_BYTE_PTR pSignature,
CK_ULONG_PTR pulSignatureLen
);
# 644 "../../../../dist/public/security/pkcs11f.h"
extern CK_RV C_VerifyInit
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey
);
extern CK_RV C_Verify
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pData,
CK_ULONG ulDataLen,
CK_BYTE_PTR pSignature,
CK_ULONG ulSignatureLen
);
extern CK_RV C_VerifyUpdate
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pPart,
CK_ULONG ulPartLen
);
extern CK_RV C_VerifyFinal
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pSignature,
CK_ULONG ulSignatureLen
);
extern CK_RV C_VerifyRecoverInit
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey
);
extern CK_RV C_VerifyRecover
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pSignature,
CK_ULONG ulSignatureLen,
CK_BYTE_PTR pData,
CK_ULONG_PTR pulDataLen
);
# 725 "../../../../dist/public/security/pkcs11f.h"
extern CK_RV C_DigestEncryptUpdate
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pPart,
CK_ULONG ulPartLen,
CK_BYTE_PTR pEncryptedPart,
CK_ULONG_PTR pulEncryptedPartLen
);
extern CK_RV C_DecryptDigestUpdate
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pEncryptedPart,
CK_ULONG ulEncryptedPartLen,
CK_BYTE_PTR pPart,
CK_ULONG_PTR pulPartLen
);
extern CK_RV C_SignEncryptUpdate
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pPart,
CK_ULONG ulPartLen,
CK_BYTE_PTR pEncryptedPart,
CK_ULONG_PTR pulEncryptedPartLen
);
extern CK_RV C_DecryptVerifyUpdate
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pEncryptedPart,
CK_ULONG ulEncryptedPartLen,
CK_BYTE_PTR pPart,
CK_ULONG_PTR pulPartLen
);
# 784 "../../../../dist/public/security/pkcs11f.h"
extern CK_RV C_GenerateKey
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount,
CK_OBJECT_HANDLE_PTR phKey
);
extern CK_RV C_GenerateKeyPair
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_ATTRIBUTE_PTR pPublicKeyTemplate,
CK_ULONG ulPublicKeyAttributeCount,
CK_ATTRIBUTE_PTR pPrivateKeyTemplate,
CK_ULONG ulPrivateKeyAttributeCount,
CK_OBJECT_HANDLE_PTR phPublicKey,
CK_OBJECT_HANDLE_PTR phPrivateKey
);
extern CK_RV C_WrapKey
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hWrappingKey,
CK_OBJECT_HANDLE hKey,
CK_BYTE_PTR pWrappedKey,
CK_ULONG_PTR pulWrappedKeyLen
);
extern CK_RV C_UnwrapKey
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hUnwrappingKey,
CK_BYTE_PTR pWrappedKey,
CK_ULONG ulWrappedKeyLen,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulAttributeCount,
CK_OBJECT_HANDLE_PTR phKey
);
extern CK_RV C_DeriveKey
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hBaseKey,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulAttributeCount,
CK_OBJECT_HANDLE_PTR phKey
);
# 876 "../../../../dist/public/security/pkcs11f.h"
extern CK_RV C_SeedRandom
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pSeed,
CK_ULONG ulSeedLen
);
extern CK_RV C_GenerateRandom
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR RandomData,
CK_ULONG ulRandomLen
);
# 903 "../../../../dist/public/security/pkcs11f.h"
extern CK_RV C_GetFunctionStatus
(
CK_SESSION_HANDLE hSession
);
extern CK_RV C_CancelFunction
(
CK_SESSION_HANDLE hSession
);
# 926 "../../../../dist/public/security/pkcs11f.h"
extern CK_RV C_WaitForSlotEvent
(
CK_FLAGS flags,
CK_SLOT_ID_PTR pSlot,
CK_VOID_PTR pRserved
);
# 257 "../../../../dist/public/security/pkcs11.h" 2
# 275 "../../../../dist/public/security/pkcs11.h"
# 1 "../../../../dist/public/security/pkcs11f.h" 1
# 50 "../../../../dist/public/security/pkcs11f.h"
typedef CK_RV ( * CK_C_Initialize)
(
CK_VOID_PTR pInitArgs
);
typedef CK_RV ( * CK_C_Finalize)
(
CK_VOID_PTR pReserved
);
typedef CK_RV ( * CK_C_GetInfo)
(
CK_INFO_PTR pInfo
);
typedef CK_RV ( * CK_C_GetFunctionList)
(
CK_FUNCTION_LIST_PTR_PTR ppFunctionList
);
typedef CK_RV ( * CK_C_GetSlotList)
(
CK_BBOOL tokenPresent,
CK_SLOT_ID_PTR pSlotList,
CK_ULONG_PTR pulCount
);
typedef CK_RV ( * CK_C_GetSlotInfo)
(
CK_SLOT_ID slotID,
CK_SLOT_INFO_PTR pInfo
);
typedef CK_RV ( * CK_C_GetTokenInfo)
(
CK_SLOT_ID slotID,
CK_TOKEN_INFO_PTR pInfo
);
typedef CK_RV ( * CK_C_GetMechanismList)
(
CK_SLOT_ID slotID,
CK_MECHANISM_TYPE_PTR pMechanismList,
CK_ULONG_PTR pulCount
);
typedef CK_RV ( * CK_C_GetMechanismInfo)
(
CK_SLOT_ID slotID,
CK_MECHANISM_TYPE type,
CK_MECHANISM_INFO_PTR pInfo
);
typedef CK_RV ( * CK_C_InitToken)
(
CK_SLOT_ID slotID,
CK_CHAR_PTR pPin,
CK_ULONG ulPinLen,
CK_CHAR_PTR pLabel
);
typedef CK_RV ( * CK_C_InitPIN)
(
CK_SESSION_HANDLE hSession,
CK_CHAR_PTR pPin,
CK_ULONG ulPinLen
);
typedef CK_RV ( * CK_C_SetPIN)
(
CK_SESSION_HANDLE hSession,
CK_CHAR_PTR pOldPin,
CK_ULONG ulOldLen,
CK_CHAR_PTR pNewPin,
CK_ULONG ulNewLen
);
# 190 "../../../../dist/public/security/pkcs11f.h"
typedef CK_RV ( * CK_C_OpenSession)
(
CK_SLOT_ID slotID,
CK_FLAGS flags,
CK_VOID_PTR pApplication,
CK_NOTIFY Notify,
CK_SESSION_HANDLE_PTR phSession
);
typedef CK_RV ( * CK_C_CloseSession)
(
CK_SESSION_HANDLE hSession
);
typedef CK_RV ( * CK_C_CloseAllSessions)
(
CK_SLOT_ID slotID
);
typedef CK_RV ( * CK_C_GetSessionInfo)
(
CK_SESSION_HANDLE hSession,
CK_SESSION_INFO_PTR pInfo
);
typedef CK_RV ( * CK_C_GetOperationState)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pOperationState,
CK_ULONG_PTR pulOperationStateLen
);
typedef CK_RV ( * CK_C_SetOperationState)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pOperationState,
CK_ULONG ulOperationStateLen,
CK_OBJECT_HANDLE hEncryptionKey,
CK_OBJECT_HANDLE hAuthenticationKey
);
typedef CK_RV ( * CK_C_Login)
(
CK_SESSION_HANDLE hSession,
CK_USER_TYPE userType,
CK_CHAR_PTR pPin,
CK_ULONG ulPinLen
);
typedef CK_RV ( * CK_C_Logout)
(
CK_SESSION_HANDLE hSession
);
typedef CK_RV ( * CK_C_CreateObject)
(
CK_SESSION_HANDLE hSession,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount,
CK_OBJECT_HANDLE_PTR phObject
);
typedef CK_RV ( * CK_C_CopyObject)
(
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hObject,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount,
CK_OBJECT_HANDLE_PTR phNewObject
);
typedef CK_RV ( * CK_C_DestroyObject)
(
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hObject
);
typedef CK_RV ( * CK_C_GetObjectSize)
(
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hObject,
CK_ULONG_PTR pulSize
);
typedef CK_RV ( * CK_C_GetAttributeValue)
(
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hObject,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount
);
typedef CK_RV ( * CK_C_SetAttributeValue)
(
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hObject,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount
);
typedef CK_RV ( * CK_C_FindObjectsInit)
(
CK_SESSION_HANDLE hSession,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount
);
typedef CK_RV ( * CK_C_FindObjects)
(
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE_PTR phObject,
CK_ULONG ulMaxObjectCount,
CK_ULONG_PTR pulObjectCount
);
typedef CK_RV ( * CK_C_FindObjectsFinal)
(
CK_SESSION_HANDLE hSession
);
typedef CK_RV ( * CK_C_EncryptInit)
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey
);
typedef CK_RV ( * CK_C_Encrypt)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pData,
CK_ULONG ulDataLen,
CK_BYTE_PTR pEncryptedData,
CK_ULONG_PTR pulEncryptedDataLen
);
typedef CK_RV ( * CK_C_EncryptUpdate)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pPart,
CK_ULONG ulPartLen,
CK_BYTE_PTR pEncryptedPart,
CK_ULONG_PTR pulEncryptedPartLen
);
typedef CK_RV ( * CK_C_EncryptFinal)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pLastEncryptedPart,
CK_ULONG_PTR pulLastEncryptedPartLen
);
typedef CK_RV ( * CK_C_DecryptInit)
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey
);
typedef CK_RV ( * CK_C_Decrypt)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pEncryptedData,
CK_ULONG ulEncryptedDataLen,
CK_BYTE_PTR pData,
CK_ULONG_PTR pulDataLen
);
typedef CK_RV ( * CK_C_DecryptUpdate)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pEncryptedPart,
CK_ULONG ulEncryptedPartLen,
CK_BYTE_PTR pPart,
CK_ULONG_PTR pulPartLen
);
typedef CK_RV ( * CK_C_DecryptFinal)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pLastPart,
CK_ULONG_PTR pulLastPartLen
);
typedef CK_RV ( * CK_C_DigestInit)
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism
);
typedef CK_RV ( * CK_C_Digest)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pData,
CK_ULONG ulDataLen,
CK_BYTE_PTR pDigest,
CK_ULONG_PTR pulDigestLen
);
typedef CK_RV ( * CK_C_DigestUpdate)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pPart,
CK_ULONG ulPartLen
);
typedef CK_RV ( * CK_C_DigestKey)
(
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hKey
);
typedef CK_RV ( * CK_C_DigestFinal)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pDigest,
CK_ULONG_PTR pulDigestLen
);
# 562 "../../../../dist/public/security/pkcs11f.h"
typedef CK_RV ( * CK_C_SignInit)
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey
);
typedef CK_RV ( * CK_C_Sign)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pData,
CK_ULONG ulDataLen,
CK_BYTE_PTR pSignature,
CK_ULONG_PTR pulSignatureLen
);
typedef CK_RV ( * CK_C_SignUpdate)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pPart,
CK_ULONG ulPartLen
);
typedef CK_RV ( * CK_C_SignFinal)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pSignature,
CK_ULONG_PTR pulSignatureLen
);
typedef CK_RV ( * CK_C_SignRecoverInit)
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey
);
typedef CK_RV ( * CK_C_SignRecover)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pData,
CK_ULONG ulDataLen,
CK_BYTE_PTR pSignature,
CK_ULONG_PTR pulSignatureLen
);
# 644 "../../../../dist/public/security/pkcs11f.h"
typedef CK_RV ( * CK_C_VerifyInit)
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey
);
typedef CK_RV ( * CK_C_Verify)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pData,
CK_ULONG ulDataLen,
CK_BYTE_PTR pSignature,
CK_ULONG ulSignatureLen
);
typedef CK_RV ( * CK_C_VerifyUpdate)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pPart,
CK_ULONG ulPartLen
);
typedef CK_RV ( * CK_C_VerifyFinal)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pSignature,
CK_ULONG ulSignatureLen
);
typedef CK_RV ( * CK_C_VerifyRecoverInit)
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey
);
typedef CK_RV ( * CK_C_VerifyRecover)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pSignature,
CK_ULONG ulSignatureLen,
CK_BYTE_PTR pData,
CK_ULONG_PTR pulDataLen
);
# 725 "../../../../dist/public/security/pkcs11f.h"
typedef CK_RV ( * CK_C_DigestEncryptUpdate)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pPart,
CK_ULONG ulPartLen,
CK_BYTE_PTR pEncryptedPart,
CK_ULONG_PTR pulEncryptedPartLen
);
typedef CK_RV ( * CK_C_DecryptDigestUpdate)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pEncryptedPart,
CK_ULONG ulEncryptedPartLen,
CK_BYTE_PTR pPart,
CK_ULONG_PTR pulPartLen
);
typedef CK_RV ( * CK_C_SignEncryptUpdate)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pPart,
CK_ULONG ulPartLen,
CK_BYTE_PTR pEncryptedPart,
CK_ULONG_PTR pulEncryptedPartLen
);
typedef CK_RV ( * CK_C_DecryptVerifyUpdate)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pEncryptedPart,
CK_ULONG ulEncryptedPartLen,
CK_BYTE_PTR pPart,
CK_ULONG_PTR pulPartLen
);
# 784 "../../../../dist/public/security/pkcs11f.h"
typedef CK_RV ( * CK_C_GenerateKey)
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount,
CK_OBJECT_HANDLE_PTR phKey
);
typedef CK_RV ( * CK_C_GenerateKeyPair)
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_ATTRIBUTE_PTR pPublicKeyTemplate,
CK_ULONG ulPublicKeyAttributeCount,
CK_ATTRIBUTE_PTR pPrivateKeyTemplate,
CK_ULONG ulPrivateKeyAttributeCount,
CK_OBJECT_HANDLE_PTR phPublicKey,
CK_OBJECT_HANDLE_PTR phPrivateKey
);
typedef CK_RV ( * CK_C_WrapKey)
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hWrappingKey,
CK_OBJECT_HANDLE hKey,
CK_BYTE_PTR pWrappedKey,
CK_ULONG_PTR pulWrappedKeyLen
);
typedef CK_RV ( * CK_C_UnwrapKey)
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hUnwrappingKey,
CK_BYTE_PTR pWrappedKey,
CK_ULONG ulWrappedKeyLen,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulAttributeCount,
CK_OBJECT_HANDLE_PTR phKey
);
typedef CK_RV ( * CK_C_DeriveKey)
(
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hBaseKey,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulAttributeCount,
CK_OBJECT_HANDLE_PTR phKey
);
# 876 "../../../../dist/public/security/pkcs11f.h"
typedef CK_RV ( * CK_C_SeedRandom)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pSeed,
CK_ULONG ulSeedLen
);
typedef CK_RV ( * CK_C_GenerateRandom)
(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR RandomData,
CK_ULONG ulRandomLen
);
# 903 "../../../../dist/public/security/pkcs11f.h"
typedef CK_RV ( * CK_C_GetFunctionStatus)
(
CK_SESSION_HANDLE hSession
);
typedef CK_RV ( * CK_C_CancelFunction)
(
CK_SESSION_HANDLE hSession
);
# 926 "../../../../dist/public/security/pkcs11f.h"
typedef CK_RV ( * CK_C_WaitForSlotEvent)
(
CK_FLAGS flags,
CK_SLOT_ID_PTR pSlot,
CK_VOID_PTR pRserved
);
# 276 "../../../../dist/public/security/pkcs11.h" 2
# 293 "../../../../dist/public/security/pkcs11.h"
struct CK_FUNCTION_LIST {
CK_VERSION version;
# 1 "../../../../dist/public/security/pkcs11f.h" 1
# 50 "../../../../dist/public/security/pkcs11f.h"
CK_C_Initialize C_Initialize;
# 62 "../../../../dist/public/security/pkcs11f.h"
CK_C_Finalize C_Finalize;
# 71 "../../../../dist/public/security/pkcs11f.h"
CK_C_GetInfo C_GetInfo;
# 80 "../../../../dist/public/security/pkcs11f.h"
CK_C_GetFunctionList C_GetFunctionList;
# 93 "../../../../dist/public/security/pkcs11f.h"
CK_C_GetSlotList C_GetSlotList;
# 105 "../../../../dist/public/security/pkcs11f.h"
CK_C_GetSlotInfo C_GetSlotInfo;
# 116 "../../../../dist/public/security/pkcs11f.h"
CK_C_GetTokenInfo C_GetTokenInfo;
# 127 "../../../../dist/public/security/pkcs11f.h"
CK_C_GetMechanismList C_GetMechanismList;
# 139 "../../../../dist/public/security/pkcs11f.h"
CK_C_GetMechanismInfo C_GetMechanismInfo;
# 150 "../../../../dist/public/security/pkcs11f.h"
CK_C_InitToken C_InitToken;
# 162 "../../../../dist/public/security/pkcs11f.h"
CK_C_InitPIN C_InitPIN;
# 173 "../../../../dist/public/security/pkcs11f.h"
CK_C_SetPIN C_SetPIN;
# 190 "../../../../dist/public/security/pkcs11f.h"
CK_C_OpenSession C_OpenSession;
# 204 "../../../../dist/public/security/pkcs11f.h"
CK_C_CloseSession C_CloseSession;
# 213 "../../../../dist/public/security/pkcs11f.h"
CK_C_CloseAllSessions C_CloseAllSessions;
# 222 "../../../../dist/public/security/pkcs11f.h"
CK_C_GetSessionInfo C_GetSessionInfo;
# 233 "../../../../dist/public/security/pkcs11f.h"
CK_C_GetOperationState C_GetOperationState;
# 245 "../../../../dist/public/security/pkcs11f.h"
CK_C_SetOperationState C_SetOperationState;
# 258 "../../../../dist/public/security/pkcs11f.h"
CK_C_Login C_Login;
# 270 "../../../../dist/public/security/pkcs11f.h"
CK_C_Logout C_Logout;
# 282 "../../../../dist/public/security/pkcs11f.h"
CK_C_CreateObject C_CreateObject;
# 295 "../../../../dist/public/security/pkcs11f.h"
CK_C_CopyObject C_CopyObject;
# 308 "../../../../dist/public/security/pkcs11f.h"
CK_C_DestroyObject C_DestroyObject;
# 318 "../../../../dist/public/security/pkcs11f.h"
CK_C_GetObjectSize C_GetObjectSize;
# 330 "../../../../dist/public/security/pkcs11f.h"
CK_C_GetAttributeValue C_GetAttributeValue;
# 343 "../../../../dist/public/security/pkcs11f.h"
CK_C_SetAttributeValue C_SetAttributeValue;
# 356 "../../../../dist/public/security/pkcs11f.h"
CK_C_FindObjectsInit C_FindObjectsInit;
# 369 "../../../../dist/public/security/pkcs11f.h"
CK_C_FindObjects C_FindObjects;
# 382 "../../../../dist/public/security/pkcs11f.h"
CK_C_FindObjectsFinal C_FindObjectsFinal;
# 394 "../../../../dist/public/security/pkcs11f.h"
CK_C_EncryptInit C_EncryptInit;
# 405 "../../../../dist/public/security/pkcs11f.h"
CK_C_Encrypt C_Encrypt;
# 419 "../../../../dist/public/security/pkcs11f.h"
CK_C_EncryptUpdate C_EncryptUpdate;
# 433 "../../../../dist/public/security/pkcs11f.h"
CK_C_EncryptFinal C_EncryptFinal;
# 444 "../../../../dist/public/security/pkcs11f.h"
CK_C_DecryptInit C_DecryptInit;
# 455 "../../../../dist/public/security/pkcs11f.h"
CK_C_Decrypt C_Decrypt;
# 469 "../../../../dist/public/security/pkcs11f.h"
CK_C_DecryptUpdate C_DecryptUpdate;
# 483 "../../../../dist/public/security/pkcs11f.h"
CK_C_DecryptFinal C_DecryptFinal;
# 497 "../../../../dist/public/security/pkcs11f.h"
CK_C_DigestInit C_DigestInit;
# 507 "../../../../dist/public/security/pkcs11f.h"
CK_C_Digest C_Digest;
# 521 "../../../../dist/public/security/pkcs11f.h"
CK_C_DigestUpdate C_DigestUpdate;
# 534 "../../../../dist/public/security/pkcs11f.h"
CK_C_DigestKey C_DigestKey;
# 545 "../../../../dist/public/security/pkcs11f.h"
CK_C_DigestFinal C_DigestFinal;
# 562 "../../../../dist/public/security/pkcs11f.h"
CK_C_SignInit C_SignInit;
# 575 "../../../../dist/public/security/pkcs11f.h"
CK_C_Sign C_Sign;
# 590 "../../../../dist/public/security/pkcs11f.h"
CK_C_SignUpdate C_SignUpdate;
# 602 "../../../../dist/public/security/pkcs11f.h"
CK_C_SignFinal C_SignFinal;
# 614 "../../../../dist/public/security/pkcs11f.h"
CK_C_SignRecoverInit C_SignRecoverInit;
# 626 "../../../../dist/public/security/pkcs11f.h"
CK_C_SignRecover C_SignRecover;
# 644 "../../../../dist/public/security/pkcs11f.h"
CK_C_VerifyInit C_VerifyInit;
# 657 "../../../../dist/public/security/pkcs11f.h"
CK_C_Verify C_Verify;
# 672 "../../../../dist/public/security/pkcs11f.h"
CK_C_VerifyUpdate C_VerifyUpdate;
# 684 "../../../../dist/public/security/pkcs11f.h"
CK_C_VerifyFinal C_VerifyFinal;
# 696 "../../../../dist/public/security/pkcs11f.h"
CK_C_VerifyRecoverInit C_VerifyRecoverInit;
# 708 "../../../../dist/public/security/pkcs11f.h"
CK_C_VerifyRecover C_VerifyRecover;
# 725 "../../../../dist/public/security/pkcs11f.h"
CK_C_DigestEncryptUpdate C_DigestEncryptUpdate;
# 739 "../../../../dist/public/security/pkcs11f.h"
CK_C_DecryptDigestUpdate C_DecryptDigestUpdate;
# 753 "../../../../dist/public/security/pkcs11f.h"
CK_C_SignEncryptUpdate C_SignEncryptUpdate;
# 767 "../../../../dist/public/security/pkcs11f.h"
CK_C_DecryptVerifyUpdate C_DecryptVerifyUpdate;
# 784 "../../../../dist/public/security/pkcs11f.h"
CK_C_GenerateKey C_GenerateKey;
# 798 "../../../../dist/public/security/pkcs11f.h"
CK_C_GenerateKeyPair C_GenerateKeyPair;
# 826 "../../../../dist/public/security/pkcs11f.h"
CK_C_WrapKey C_WrapKey;
# 841 "../../../../dist/public/security/pkcs11f.h"
CK_C_UnwrapKey C_UnwrapKey;
# 858 "../../../../dist/public/security/pkcs11f.h"
CK_C_DeriveKey C_DeriveKey;
# 876 "../../../../dist/public/security/pkcs11f.h"
CK_C_SeedRandom C_SeedRandom;
# 887 "../../../../dist/public/security/pkcs11f.h"
CK_C_GenerateRandom C_GenerateRandom;
# 903 "../../../../dist/public/security/pkcs11f.h"
CK_C_GetFunctionStatus C_GetFunctionStatus;
# 913 "../../../../dist/public/security/pkcs11f.h"
CK_C_CancelFunction C_CancelFunction;
# 926 "../../../../dist/public/security/pkcs11f.h"
CK_C_WaitForSlotEvent C_WaitForSlotEvent;
# 301 "../../../../dist/public/security/pkcs11.h" 2
};
# 1 "../../../../dist/public/security/pkcs11u.h" 1
# 311 "../../../../dist/public/security/pkcs11.h" 2
# 319 "../../../../dist/public/security/pkcs11.h"
extern void PK11_ConfigurePKCS11(char *man, char *libdes, char *tokdes,
char *ptokdes, char *slotdes, char *pslotdes, char *fslotdes,
char *fpslotdes, int minPwd, int pwdRequired);
extern void PK11_ConfigureFIPS(char *slotdes, char *pslotdes);
# 40 "p12t.h" 2
# 1 "../../../../dist/public/security/secpkcs7.h" 1
# 43 "../../../../dist/public/security/secpkcs7.h"
# 1 "../../../../dist/public/security/seccomon.h" 1
# 44 "../../../../dist/public/security/secpkcs7.h" 2
# 1 "../../../../dist/public/security/secoidt.h" 1
# 46 "../../../../dist/public/security/secpkcs7.h" 2
# 1 "../../../../dist/public/security/certt.h" 1
# 47 "../../../../dist/public/security/secpkcs7.h" 2
# 1 "../../../../dist/public/security/keyt.h" 1
# 41 "../../../../dist/public/security/keyt.h"
# 1 "../../../../dist/public/security/keytlow.h" 1
# 42 "../../../../dist/public/security/keyt.h" 2
# 1 "../../../../dist/public/security/keytboth.h" 1
# 43 "../../../../dist/public/security/keyt.h" 2
# 1 "../../../../dist/public/security/keythi.h" 1
# 44 "../../../../dist/public/security/keyt.h" 2
# 1 "../../../../dist/public/security/keydbt.h" 1
# 45 "../../../../dist/public/security/keyt.h" 2
# 48 "../../../../dist/public/security/secpkcs7.h" 2
# 1 "../../../../dist/public/security/hasht.h" 1
# 49 "../../../../dist/public/security/secpkcs7.h" 2
# 1 "../../../../dist/public/security/pkcs7t.h" 1
# 43 "../../../../dist/public/security/pkcs7t.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 44 "../../../../dist/public/security/pkcs7t.h" 2
# 1 "../../../../dist/public/security/seccomon.h" 1
# 46 "../../../../dist/public/security/pkcs7t.h" 2
# 1 "../../../../dist/public/security/secoidt.h" 1
# 47 "../../../../dist/public/security/pkcs7t.h" 2
# 1 "../../../../dist/public/security/certt.h" 1
# 48 "../../../../dist/public/security/pkcs7t.h" 2
# 1 "../../../../dist/public/security/secmodt.h" 1
# 49 "../../../../dist/public/security/pkcs7t.h" 2
typedef struct SEC_PKCS7DecoderContextStr SEC_PKCS7DecoderContext;
typedef struct SEC_PKCS7EncoderContextStr SEC_PKCS7EncoderContext;
# 84 "../../../../dist/public/security/pkcs7t.h"
typedef struct SEC_PKCS7ContentInfoStr SEC_PKCS7ContentInfo;
typedef struct SEC_PKCS7SignedDataStr SEC_PKCS7SignedData;
typedef struct SEC_PKCS7EncryptedContentInfoStr SEC_PKCS7EncryptedContentInfo;
typedef struct SEC_PKCS7EnvelopedDataStr SEC_PKCS7EnvelopedData;
typedef struct SEC_PKCS7SignedAndEnvelopedDataStr
SEC_PKCS7SignedAndEnvelopedData;
typedef struct SEC_PKCS7SignerInfoStr SEC_PKCS7SignerInfo;
typedef struct SEC_PKCS7RecipientInfoStr SEC_PKCS7RecipientInfo;
typedef struct SEC_PKCS7DigestedDataStr SEC_PKCS7DigestedData;
typedef struct SEC_PKCS7EncryptedDataStr SEC_PKCS7EncryptedData;
typedef struct SEC_PKCS7SMIMEKEAParametersStr SEC_PKCS7SMIMEKEAParameters;
typedef struct SEC_PKCS7AttributeStr SEC_PKCS7Attribute;
struct SEC_PKCS7ContentInfoStr {
PLArenaPool *poolp;
PRBool created;
int refCount;
SECOidData *contentTypeTag;
SECKEYGetPasswordKey pwfn;
void *pwfn_arg;
SECItem contentType;
union {
SECItem *data;
SEC_PKCS7DigestedData *digestedData;
SEC_PKCS7EncryptedData *encryptedData;
SEC_PKCS7EnvelopedData *envelopedData;
SEC_PKCS7SignedData *signedData;
SEC_PKCS7SignedAndEnvelopedData *signedAndEnvelopedData;
} content;
};
struct SEC_PKCS7SignedDataStr {
SECItem version;
SECAlgorithmID **digestAlgorithms;
SEC_PKCS7ContentInfo contentInfo;
SECItem **rawCerts;
CERTSignedCrl **crls;
SEC_PKCS7SignerInfo **signerInfos;
SECItem **digests;
CERTCertificate **certs;
CERTCertificateList **certLists;
};
struct SEC_PKCS7EncryptedContentInfoStr {
SECOidData *contentTypeTag;
SECItem contentType;
SECAlgorithmID contentEncAlg;
SECItem encContent;
SECItem plainContent;
int keysize;
SECOidTag encalg;
};
struct SEC_PKCS7EnvelopedDataStr {
SECItem version;
SEC_PKCS7RecipientInfo **recipientInfos;
SEC_PKCS7EncryptedContentInfo encContentInfo;
};
struct SEC_PKCS7SignedAndEnvelopedDataStr {
SECItem version;
SEC_PKCS7RecipientInfo **recipientInfos;
SECAlgorithmID **digestAlgorithms;
SEC_PKCS7EncryptedContentInfo encContentInfo;
SECItem **rawCerts;
CERTSignedCrl **crls;
SEC_PKCS7SignerInfo **signerInfos;
SECItem **digests;
CERTCertificate **certs;
CERTCertificateList **certLists;
PK11SymKey *sigKey;
};
struct SEC_PKCS7SignerInfoStr {
SECItem version;
CERTIssuerAndSN *issuerAndSN;
SECAlgorithmID digestAlg;
SEC_PKCS7Attribute **authAttr;
SECAlgorithmID digestEncAlg;
SECItem encDigest;
SEC_PKCS7Attribute **unAuthAttr;
CERTCertificate *cert;
CERTCertificateList *certList;
};
struct SEC_PKCS7RecipientInfoStr {
SECItem version;
CERTIssuerAndSN *issuerAndSN;
SECAlgorithmID keyEncAlg;
SECItem encKey;
CERTCertificate *cert;
};
struct SEC_PKCS7DigestedDataStr {
SECItem version;
SECAlgorithmID digestAlg;
SEC_PKCS7ContentInfo contentInfo;
SECItem digest;
};
struct SEC_PKCS7EncryptedDataStr {
SECItem version;
SEC_PKCS7EncryptedContentInfo encContentInfo;
};
struct SEC_PKCS7AttributeStr {
SECItem type;
SECItem **values;
SECOidData *typeTag;
PRBool encoded;
};
typedef enum
{
SECKEAUsesSkipjack = 0,
SECKEAUsesNonSkipjack = 1,
SECKEAUsesNonSkipjackWithPaddedEncKey = 2
} SECKEATemplateSelector;
struct SEC_PKCS7SMIMEKEAParametersStr {
SECItem originatorKEAKey;
SECItem originatorRA;
SECItem nonSkipjackIV;
SECItem bulkKeySize;
};
# 256 "../../../../dist/public/security/pkcs7t.h"
typedef void (* SEC_PKCS7DecoderContentCallback)(void *arg,
const char *buf,
unsigned long len);
# 267 "../../../../dist/public/security/pkcs7t.h"
typedef void (* SEC_PKCS7EncoderOutputCallback)(void *arg,
const char *buf,
unsigned long len);
# 278 "../../../../dist/public/security/pkcs7t.h"
typedef PK11SymKey * (* SEC_PKCS7GetDecryptKeyCallback)(void *arg,
SECAlgorithmID *algid);
# 289 "../../../../dist/public/security/pkcs7t.h"
typedef PRBool (* SEC_PKCS7DecryptionAllowedCallback)(SECAlgorithmID *algid,
PK11SymKey *bulkkey);
# 50 "../../../../dist/public/security/secpkcs7.h" 2
extern const SEC_ASN1Template sec_PKCS7ContentInfoTemplate[];
# 63 "../../../../dist/public/security/secpkcs7.h"
extern SECOidTag SEC_PKCS7ContentType (SEC_PKCS7ContentInfo *cinfo);
extern void SEC_PKCS7DestroyContentInfo(SEC_PKCS7ContentInfo *contentInfo);
extern SEC_PKCS7ContentInfo *
SEC_PKCS7CopyContentInfo(SEC_PKCS7ContentInfo *contentInfo);
extern SECItem *SEC_PKCS7GetContent(SEC_PKCS7ContentInfo *cinfo);
extern SEC_PKCS7DecoderContext *
SEC_PKCS7DecoderStart(SEC_PKCS7DecoderContentCallback callback,
void *callback_arg,
SECKEYGetPasswordKey pwfn, void *pwfn_arg,
SEC_PKCS7GetDecryptKeyCallback decrypt_key_cb,
void *decrypt_key_cb_arg,
SEC_PKCS7DecryptionAllowedCallback decrypt_allowed_cb);
extern SECStatus
SEC_PKCS7DecoderUpdate(SEC_PKCS7DecoderContext *p7dcx,
const char *buf, unsigned long len);
extern SEC_PKCS7ContentInfo *
SEC_PKCS7DecoderFinish(SEC_PKCS7DecoderContext *p7dcx);
extern SEC_PKCS7ContentInfo *
SEC_PKCS7DecodeItem(SECItem *p7item,
SEC_PKCS7DecoderContentCallback cb, void *cb_arg,
SECKEYGetPasswordKey pwfn, void *pwfn_arg,
SEC_PKCS7GetDecryptKeyCallback decrypt_key_cb,
void *decrypt_key_cb_arg,
SEC_PKCS7DecryptionAllowedCallback decrypt_allowed_cb);
extern PRBool SEC_PKCS7ContainsCertsOrCrls(SEC_PKCS7ContentInfo *cinfo);
extern PRBool
SEC_PKCS7IsContentEmpty(SEC_PKCS7ContentInfo *cinfo, unsigned int minLen);
extern PRBool SEC_PKCS7ContentIsEncrypted(SEC_PKCS7ContentInfo *cinfo);
# 130 "../../../../dist/public/security/secpkcs7.h"
extern PRBool SEC_PKCS7ContentIsSigned(SEC_PKCS7ContentInfo *cinfo);
# 141 "../../../../dist/public/security/secpkcs7.h"
extern PRBool SEC_PKCS7VerifySignature(SEC_PKCS7ContentInfo *cinfo,
SECCertUsage certusage,
PRBool keepcerts);
# 155 "../../../../dist/public/security/secpkcs7.h"
extern PRBool SEC_PKCS7VerifyDetachedSignature(SEC_PKCS7ContentInfo *cinfo,
SECCertUsage certusage,
SECItem *detached_digest,
HASH_HashType digest_type,
PRBool keepcerts);
# 169 "../../../../dist/public/security/secpkcs7.h"
extern char *SEC_PKCS7GetSignerCommonName(SEC_PKCS7ContentInfo *cinfo);
extern char *SEC_PKCS7GetSignerEmailAddress(SEC_PKCS7ContentInfo *cinfo);
extern SECItem *SEC_PKCS7GetSigningTime(SEC_PKCS7ContentInfo *cinfo);
# 210 "../../../../dist/public/security/secpkcs7.h"
extern SEC_PKCS7ContentInfo *
SEC_PKCS7CreateSignedData (CERTCertificate *cert,
SECCertUsage certusage,
CERTCertDBHandle *certdb,
SECOidTag digestalg,
SECItem *digest,
SECKEYGetPasswordKey pwfn, void *pwfn_arg);
# 235 "../../../../dist/public/security/secpkcs7.h"
extern SEC_PKCS7ContentInfo *
SEC_PKCS7CreateCertsOnly (CERTCertificate *cert,
PRBool include_chain,
CERTCertDBHandle *certdb);
# 266 "../../../../dist/public/security/secpkcs7.h"
extern SEC_PKCS7ContentInfo *
SEC_PKCS7CreateEnvelopedData (CERTCertificate *cert,
SECCertUsage certusage,
CERTCertDBHandle *certdb,
SECOidTag encalg,
int keysize,
SECKEYGetPasswordKey pwfn, void *pwfn_arg);
# 286 "../../../../dist/public/security/secpkcs7.h"
extern SEC_PKCS7ContentInfo *SEC_PKCS7CreateData (void);
# 296 "../../../../dist/public/security/secpkcs7.h"
extern SEC_PKCS7ContentInfo *
SEC_PKCS7CreateEncryptedData (SECOidTag algorithm, int keysize,
SECKEYGetPasswordKey pwfn, void *pwfn_arg);
# 324 "../../../../dist/public/security/secpkcs7.h"
extern SECStatus SEC_PKCS7AddSignedAttribute (SEC_PKCS7ContentInfo *cinfo,
SECOidTag oidtag,
SECItem *value);
# 337 "../../../../dist/public/security/secpkcs7.h"
extern SECStatus SEC_PKCS7AddCertChain (SEC_PKCS7ContentInfo *cinfo,
CERTCertificate *cert,
CERTCertDBHandle *certdb);
extern SECStatus SEC_PKCS7AddCertificate (SEC_PKCS7ContentInfo *cinfo,
CERTCertificate *cert);
# 367 "../../../../dist/public/security/secpkcs7.h"
extern SECStatus SEC_PKCS7AddRecipient (SEC_PKCS7ContentInfo *cinfo,
CERTCertificate *cert,
SECCertUsage certusage,
CERTCertDBHandle *certdb);
# 388 "../../../../dist/public/security/secpkcs7.h"
extern SECStatus SEC_PKCS7AddSigningTime (SEC_PKCS7ContentInfo *cinfo);
# 400 "../../../../dist/public/security/secpkcs7.h"
extern SECStatus SEC_PKCS7AddSymmetricCapabilities(SEC_PKCS7ContentInfo *cinfo);
# 413 "../../../../dist/public/security/secpkcs7.h"
extern SECStatus SEC_PKCS7IncludeCertChain (SEC_PKCS7ContentInfo *cinfo,
CERTCertDBHandle *certdb);
# 425 "../../../../dist/public/security/secpkcs7.h"
extern SECStatus SEC_PKCS7SetContent (SEC_PKCS7ContentInfo *cinfo,
const char *buf, unsigned long len);
# 451 "../../../../dist/public/security/secpkcs7.h"
extern SECStatus SEC_PKCS7Encode (SEC_PKCS7ContentInfo *cinfo,
SEC_PKCS7EncoderOutputCallback outputfn,
void *outputarg,
PK11SymKey *bulkkey,
SECKEYGetPasswordKey pwfn,
void *pwfnarg);
# 485 "../../../../dist/public/security/secpkcs7.h"
extern SECItem *SEC_PKCS7EncodeItem (PLArenaPool *pool,
SECItem *dest,
SEC_PKCS7ContentInfo *cinfo,
PK11SymKey *bulkkey,
SECKEYGetPasswordKey pwfn,
void *pwfnarg);
extern SECStatus SEC_PKCS7PrepareForEncode (SEC_PKCS7ContentInfo *cinfo,
PK11SymKey *bulkkey,
SECKEYGetPasswordKey pwfn,
void *pwfnarg);
# 523 "../../../../dist/public/security/secpkcs7.h"
extern SEC_PKCS7EncoderContext *
SEC_PKCS7EncoderStart (SEC_PKCS7ContentInfo *cinfo,
SEC_PKCS7EncoderOutputCallback outputfn,
void *outputarg,
PK11SymKey *bulkkey);
extern SECStatus SEC_PKCS7EncoderUpdate (SEC_PKCS7EncoderContext *p7ecx,
const char *buf,
unsigned long len);
# 546 "../../../../dist/public/security/secpkcs7.h"
extern SECStatus SEC_PKCS7EncoderFinish (SEC_PKCS7EncoderContext *p7ecx,
SECKEYGetPasswordKey pwfn,
void *pwfnarg);
extern SECAlgorithmID *
SEC_PKCS7GetEncryptionAlgorithm(SEC_PKCS7ContentInfo *cinfo);
# 572 "../../../../dist/public/security/secpkcs7.h"
extern SECStatus
SEC_PKCS7EncryptContents(PLArenaPool *poolp,
SEC_PKCS7ContentInfo *cinfo,
SECItem *key,
void *wincx);
# 592 "../../../../dist/public/security/secpkcs7.h"
extern SECStatus
SEC_PKCS7DecryptContents(PLArenaPool *poolp,
SEC_PKCS7ContentInfo *cinfo,
SECItem *key,
void *wincx);
extern SECItem **
SEC_PKCS7GetCertificateList(SEC_PKCS7ContentInfo *cinfo);
extern int
SEC_PKCS7GetKeyLength(SEC_PKCS7ContentInfo *cinfo);
# 41 "p12t.h" 2
# 1 "../../../../dist/public/security/secdig.h" 1
# 41 "../../../../dist/public/security/secdig.h"
# 1 "../../../../dist/public/security/secdigt.h" 1
# 41 "../../../../dist/public/security/secdigt.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 42 "../../../../dist/public/security/secdigt.h" 2
# 1 "../../../../dist/public/security/secoidt.h" 1
# 43 "../../../../dist/public/security/secdigt.h" 2
# 1 "../../../../dist/public/security/secitem.h" 1
# 44 "../../../../dist/public/security/secdigt.h" 2
struct SGNDigestInfoStr {
PLArenaPool * arena;
SECAlgorithmID digestAlgorithm;
SECItem digest;
};
typedef struct SGNDigestInfoStr SGNDigestInfo;
# 42 "../../../../dist/public/security/secdig.h" 2
# 1 "../../../../dist/public/security/seccomon.h" 1
# 44 "../../../../dist/public/security/secdig.h" 2
# 1 "../../../../dist/public/security/secasn1t.h" 1
# 45 "../../../../dist/public/security/secdig.h" 2
# 1 "../../../../dist/public/security/secdert.h" 1
# 46 "../../../../dist/public/security/secdig.h" 2
extern const SEC_ASN1Template sgn_DigestInfoTemplate[];
extern const SEC_ASN1Template * NSS_Get_sgn_DigestInfoTemplate (void *arg, PRBool enc);
extern DERTemplate SGNDigestInfoTemplate[];
# 74 "../../../../dist/public/security/secdig.h"
extern SGNDigestInfo *SGN_CreateDigestInfo(SECOidTag algorithm,
unsigned char *sig,
unsigned int sigLen);
extern void SGN_DestroyDigestInfo(SGNDigestInfo *info);
# 96 "../../../../dist/public/security/secdig.h"
extern SECItem *SGN_EncodeDigestInfo(PLArenaPool *poolp, SECItem *dest,
SGNDigestInfo *diginfo);
# 107 "../../../../dist/public/security/secdig.h"
extern SGNDigestInfo *SGN_DecodeDigestInfo(SECItem *didata);
# 122 "../../../../dist/public/security/secdig.h"
extern SECStatus SGN_CopyDigestInfo(PLArenaPool *poolp,
SGNDigestInfo *a,
SGNDigestInfo *b);
extern SECComparison SGN_CompareDigestInfo(SGNDigestInfo *a, SGNDigestInfo *b);
# 42 "p12t.h" 2
typedef struct sec_PKCS12PFXItemStr sec_PKCS12PFXItem;
typedef struct sec_PKCS12MacDataStr sec_PKCS12MacData;
typedef struct sec_PKCS12AuthenticatedSafeStr sec_PKCS12AuthenticatedSafe;
typedef struct sec_PKCS12SafeContentsStr sec_PKCS12SafeContents;
typedef struct sec_PKCS12SafeBagStr sec_PKCS12SafeBag;
typedef struct sec_PKCS12PKCS8ShroudedKeyBagStr sec_PKCS12PKCS8ShroudedKeyBag;
typedef struct sec_PKCS12CertBagStr sec_PKCS12CertBag;
typedef struct sec_PKCS12CRLBagStr sec_PKCS12CRLBag;
typedef struct sec_PKCS12SecretBag sec_PKCS12SecretBag;
typedef struct sec_PKCS12AttributeStr sec_PKCS12Attribute;
struct sec_PKCS12CertBagStr {
SECItem bagID;
union {
SECItem x509Cert;
SECItem SDSICert;
} value;
};
struct sec_PKCS12CRLBagStr {
SECItem bagID;
union {
SECItem x509CRL;
} value;
};
struct sec_PKCS12SecretBag {
SECItem secretType;
SECItem secretContent;
};
struct sec_PKCS12AttributeStr {
SECItem attrType;
SECItem **attrValue;
};
struct sec_PKCS12SafeBagStr {
SECItem safeBagType;
union {
SECKEYPrivateKeyInfo *pkcs8KeyBag;
SECKEYEncryptedPrivateKeyInfo *pkcs8ShroudedKeyBag;
sec_PKCS12CertBag *certBag;
sec_PKCS12CRLBag *crlBag;
sec_PKCS12SecretBag *secretBag;
sec_PKCS12SafeContents *safeContents;
} safeBagContent;
sec_PKCS12Attribute **attribs;
SECOidData *bagTypeTag;
PLArenaPool *arena;
unsigned int nAttribs;
PRBool problem, noInstall, validated, hasKey, removeExisting, installed;
int error;
PRBool swapUnicodeBytes;
PK11SlotInfo *slot;
SECItem *pwitem;
PRBool oldBagType;
};
struct sec_PKCS12SafeContentsStr {
sec_PKCS12SafeBag **safeBags;
SECItem **encodedSafeBags;
PLArenaPool *arena;
unsigned int bagCount;
};
struct sec_PKCS12MacDataStr {
SGNDigestInfo safeMac;
SECItem macSalt;
SECItem iter;
};
struct sec_PKCS12PFXItemStr {
SECItem version;
SEC_PKCS7ContentInfo *authSafe;
SECItem encodedAuthSafe;
sec_PKCS12MacData macData;
SECItem encodedMacData;
};
struct sec_PKCS12AuthenticatedSafeStr {
SEC_PKCS7ContentInfo **safes;
SECItem **encodedSafes;
unsigned int safeCount;
SECItem dummySafe;
};
extern const SEC_ASN1Template sec_PKCS12PFXItemTemplate[];
extern const SEC_ASN1Template sec_PKCS12MacDataTemplate[];
extern const SEC_ASN1Template sec_PKCS12AuthenticatedSafeTemplate[];
extern const SEC_ASN1Template sec_PKCS12SafeContentsTemplate[];
extern const SEC_ASN1Template sec_PKCS12SafeContentsDecodeTemplate[];
extern const SEC_ASN1Template sec_PKCS12NestedSafeContentsDecodeTemplate[];
extern const SEC_ASN1Template sec_PKCS12CertBagTemplate[];
extern const SEC_ASN1Template sec_PKCS12CRLBagTemplate[];
extern const SEC_ASN1Template sec_PKCS12SecretBagTemplate[];
extern const SEC_ASN1Template sec_PKCS12PointerToCertBagTemplate[];
extern const SEC_ASN1Template sec_PKCS12PointerToCRLBagTemplate[];
extern const SEC_ASN1Template sec_PKCS12PointerToSecretBagTemplate[];
extern const SEC_ASN1Template sec_PKCS12PointerToSafeContentsTemplate[];
extern const SEC_ASN1Template sec_PKCS12AttributeTemplate[];
extern const SEC_ASN1Template sec_PKCS12PointerToContentInfoTemplate[];
extern const SEC_ASN1Template sec_PKCS12SafeBagTemplate[];
# 36 "p12e.c" 2
# 1 "p12.h" 1
# 38 "p12.h"
# 1 "../../../../dist/public/security/secoid.h" 1
# 39 "p12.h" 2
# 1 "../../../../dist/public/security/key.h" 1
# 40 "p12.h" 2
# 1 "../../../../dist/public/security/secpkcs7.h" 1
# 41 "p12.h" 2
# 1 "p12t.h" 1
# 42 "p12.h" 2
typedef int ( * PKCS12OpenFunction)(void *arg);
typedef int ( * PKCS12ReadFunction)(void *arg,
unsigned char *buffer,
unsigned int *lenRead,
unsigned int maxLen);
typedef int ( * PKCS12WriteFunction)(void *arg,
unsigned char *buffer,
unsigned int *bufLen,
unsigned int *lenWritten);
typedef int ( * PKCS12CloseFunction)(void *arg);
typedef SECStatus ( * PKCS12UnicodeConvertFunction)(
PLArenaPool *arena,
SECItem *dest, SECItem *src,
PRBool toUnicode,
PRBool swapBytes);
typedef void ( * SEC_PKCS12EncoderOutputCallback)(
void *arg, const char *buf,
unsigned long len);
typedef void ( * SEC_PKCS12DecoderOutputCallback)(
void *arg, const char *buf,
unsigned long len);
typedef SECItem * ( * SEC_PKCS12NicknameCollisionCallback)(
SECItem *old_nickname,
PRBool *cancel,
void *arg);
typedef SECStatus ( *digestOpenFn)(void *arg, PRBool readData);
typedef SECStatus ( *digestCloseFn)(void *arg, PRBool removeFile);
typedef int ( *digestIOFn)(void *arg, unsigned char *buf,
unsigned long len);
typedef struct SEC_PKCS12ExportContextStr SEC_PKCS12ExportContext;
typedef struct SEC_PKCS12SafeInfoStr SEC_PKCS12SafeInfo;
typedef struct SEC_PKCS12DecoderContextStr SEC_PKCS12DecoderContext;
struct sec_PKCS12PasswordModeInfo {
SECItem *password;
SECOidTag algorithm;
};
struct sec_PKCS12PublicKeyModeInfo {
CERTCertificate *cert;
CERTCertDBHandle *certDb;
SECOidTag algorithm;
int keySize;
};
SEC_PKCS12SafeInfo *
SEC_PKCS12CreatePubKeyEncryptedSafe(SEC_PKCS12ExportContext *p12ctxt,
CERTCertDBHandle *certDb,
CERTCertificate *signer,
CERTCertificate **recipients,
SECOidTag algorithm, int keysize);
extern SEC_PKCS12SafeInfo *
SEC_PKCS12CreatePasswordPrivSafe(SEC_PKCS12ExportContext *p12ctxt,
SECItem *pwitem, SECOidTag privAlg);
extern SEC_PKCS12SafeInfo *
SEC_PKCS12CreateUnencryptedSafe(SEC_PKCS12ExportContext *p12ctxt);
extern SECStatus
SEC_PKCS12AddPasswordIntegrity(SEC_PKCS12ExportContext *p12ctxt,
SECItem *pwitem, SECOidTag integAlg);
extern SECStatus
SEC_PKCS12AddPublicKeyIntegrity(SEC_PKCS12ExportContext *p12ctxt,
CERTCertificate *cert, CERTCertDBHandle *certDb,
SECOidTag algorithm, int keySize);
extern SEC_PKCS12ExportContext *
SEC_PKCS12CreateExportContext(SECKEYGetPasswordKey pwfn, void *pwfnarg,
PK11SlotInfo *slot, void *wincx);
extern SECStatus
SEC_PKCS12AddCert(SEC_PKCS12ExportContext *p12ctxt,
SEC_PKCS12SafeInfo *safe, void *nestedDest,
CERTCertificate *cert, CERTCertDBHandle *certDb,
SECItem *keyId, PRBool includeCertChain);
extern SECStatus
SEC_PKCS12AddKeyForCert(SEC_PKCS12ExportContext *p12ctxt,
SEC_PKCS12SafeInfo *safe,
void *nestedDest, CERTCertificate *cert,
PRBool shroudKey, SECOidTag algorithm, SECItem *pwitem,
SECItem *keyId, SECItem *nickName);
extern SECStatus
SEC_PKCS12AddCertAndKey(SEC_PKCS12ExportContext *p12ctxt,
void *certSafe, void *certNestedDest,
CERTCertificate *cert, CERTCertDBHandle *certDb,
void *keySafe, void *keyNestedDest,
PRBool shroudKey, SECItem *pwitem, SECOidTag algorithm);
extern SECStatus
SEC_PKCS12AddDERCertAndEncryptedKey(SEC_PKCS12ExportContext *p12ctxt,
void *certSafe, void *certNestedDest, SECItem *derCert,
void *keySafe, void *keyNestedDest,
SECKEYEncryptedPrivateKeyInfo *epki, char *nickname);
extern void *
SEC_PKCS12CreateNestedSafeContents(SEC_PKCS12ExportContext *p12ctxt,
void *baseSafe, void *nestedDest);
extern SECStatus
SEC_PKCS12Encode(SEC_PKCS12ExportContext *p12exp,
SEC_PKCS12EncoderOutputCallback output, void *outputarg);
extern void
SEC_PKCS12DestroyExportContext(SEC_PKCS12ExportContext *p12exp);
extern SEC_PKCS12DecoderContext *
SEC_PKCS12DecoderStart(SECItem *pwitem, PK11SlotInfo *slot, void *wincx,
digestOpenFn dOpen, digestCloseFn dClose,
digestIOFn dRead, digestIOFn dWrite, void *dArg);
extern SECStatus
SEC_PKCS12DecoderUpdate(SEC_PKCS12DecoderContext *p12dcx, unsigned char *data,
unsigned long len);
extern void
SEC_PKCS12DecoderFinish(SEC_PKCS12DecoderContext *p12dcx);
extern SECStatus
SEC_PKCS12DecoderVerify(SEC_PKCS12DecoderContext *p12dcx);
extern SECStatus
SEC_PKCS12DecoderValidateBags(SEC_PKCS12DecoderContext *p12dcx,
SEC_PKCS12NicknameCollisionCallback nicknameCb);
extern SECStatus
SEC_PKCS12DecoderImportBags(SEC_PKCS12DecoderContext *p12dcx);
CERTCertList *
SEC_PKCS12DecoderGetCerts(SEC_PKCS12DecoderContext *p12dcx);
# 37 "p12e.c" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 38 "p12e.c" 2
# 1 "../../../../dist/public/security/secitem.h" 1
# 39 "p12e.c" 2
# 1 "../../../../dist/public/security/secoid.h" 1
# 40 "p12e.c" 2
# 1 "../../../../dist/public/security/seccomon.h" 1
# 41 "p12e.c" 2
# 1 "../../../../dist/public/security/secport.h" 1
# 42 "p12e.c" 2
# 1 "../../../../dist/public/security/cert.h" 1
# 43 "../../../../dist/public/security/cert.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 44 "../../../../dist/public/security/cert.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plhash.h" 1
# 40 "/home/nisse/hack/mozilla/dist/include/nspr/plhash.h"
# 1 "/usr/include/stdio.h" 1 3
# 27 "/usr/include/stdio.h" 3
# 1 "/usr/include/features.h" 1 3
# 28 "/usr/include/stdio.h" 2 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 34 "/usr/include/stdio.h" 2 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stdarg.h" 1 3
# 43 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stdarg.h" 3
typedef __builtin_va_list __gnuc_va_list;
# 110 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stdarg.h" 3
typedef __gnuc_va_list va_list;
# 39 "/usr/include/stdio.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 41 "/usr/include/stdio.h" 2 3
typedef struct _IO_FILE FILE;
# 57 "/usr/include/stdio.h" 3
# 1 "/usr/include/libio.h" 1 3
# 30 "/usr/include/libio.h" 3
# 1 "/usr/include/_G_config.h" 1 3
# 9 "/usr/include/_G_config.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 10 "/usr/include/_G_config.h" 2 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 312 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 3
typedef unsigned int wint_t;
# 15 "/usr/include/_G_config.h" 2 3
# 35 "/usr/include/_G_config.h" 3
typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
# 31 "/usr/include/libio.h" 2 3
# 48 "/usr/include/libio.h" 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stdarg.h" 1 3
# 49 "/usr/include/libio.h" 2 3
# 154 "/usr/include/libio.h" 3
struct _IO_jump_t; struct _IO_FILE;
# 164 "/usr/include/libio.h" 3
typedef void _IO_lock_t;
struct _IO_marker {
struct _IO_marker *_next;
struct _IO_FILE *_sbuf;
int _pos;
# 187 "/usr/include/libio.h" 3
};
struct _IO_FILE {
int _flags;
char* _IO_read_ptr;
char* _IO_read_end;
char* _IO_read_base;
char* _IO_write_base;
char* _IO_write_ptr;
char* _IO_write_end;
char* _IO_buf_base;
char* _IO_buf_end;
char *_IO_save_base;
char *_IO_backup_base;
char *_IO_save_end;
struct _IO_marker *_markers;
struct _IO_FILE *_chain;
int _fileno;
int _blksize;
__off_t _old_offset;
unsigned short _cur_column;
signed char _vtable_offset;
char _shortbuf[1];
_IO_lock_t *_lock;
# 233 "/usr/include/libio.h" 3
__off64_t _offset;
int _unused2[16];
};
typedef struct _IO_FILE _IO_FILE;
struct _IO_FILE_plus;
extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
# 262 "/usr/include/libio.h" 3
typedef __ssize_t __io_read_fn (void * __cookie, char *__buf, size_t __nbytes);
# 271 "/usr/include/libio.h" 3
typedef __ssize_t __io_write_fn (void * __cookie, __const char *__buf, size_t __n);
# 280 "/usr/include/libio.h" 3
typedef int __io_seek_fn (void * __cookie, __off_t __pos, int __w);
typedef int __io_close_fn (void * __cookie);
# 318 "/usr/include/libio.h" 3
extern int __underflow (_IO_FILE *) ;
extern int __uflow (_IO_FILE *) ;
extern int __overflow (_IO_FILE *, int) ;
# 337 "/usr/include/libio.h" 3
extern int _IO_getc (_IO_FILE *__fp) ;
extern int _IO_putc (int __c, _IO_FILE *__fp) ;
extern int _IO_feof (_IO_FILE *__fp) ;
extern int _IO_ferror (_IO_FILE *__fp) ;
extern int _IO_peekc_locked (_IO_FILE *__fp) ;
extern void _IO_flockfile (_IO_FILE *) ;
extern void _IO_funlockfile (_IO_FILE *) ;
extern int _IO_ftrylockfile (_IO_FILE *) ;
# 363 "/usr/include/libio.h" 3
extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, __gnuc_va_list, int *__restrict) ;
extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, __gnuc_va_list) ;
extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) ;
extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) ;
extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) ;
extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) ;
extern void _IO_free_backup_area (_IO_FILE *) ;
# 58 "/usr/include/stdio.h" 2 3
typedef __off_t fpos_t;
# 110 "/usr/include/stdio.h" 3
# 1 "/usr/include/bits/stdio_lim.h" 1 3
# 111 "/usr/include/stdio.h" 2 3
extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;
extern int remove (__const char *__filename) ;
extern int rename (__const char *__old, __const char *__new) ;
extern FILE *tmpfile (void) ;
# 143 "/usr/include/stdio.h" 3
extern char *tmpnam (char *__s) ;
extern char *tmpnam_r (char *__s) ;
# 160 "/usr/include/stdio.h" 3
extern char *tempnam (__const char *__dir, __const char *__pfx) ;
extern int fclose (FILE *__stream) ;
extern int fflush (FILE *__stream) ;
extern int fflush_unlocked (FILE *__stream) ;
# 182 "/usr/include/stdio.h" 3
extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) ;
extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) ;
# 212 "/usr/include/stdio.h" 3
extern FILE *fdopen (int __fd, __const char *__modes) ;
# 232 "/usr/include/stdio.h" 3
extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ;
extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) ;
extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) ;
extern void setlinebuf (FILE *__stream) ;
extern int fprintf (FILE *__restrict __stream, __const char *__restrict __format, ...) ;
extern int printf (__const char *__restrict __format, ...) ;
extern int sprintf (char *__restrict __s, __const char *__restrict __format, ...) ;
extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) ;
extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg) ;
extern int vsprintf (char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) ;
extern int snprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));
extern int __vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__format__ (__printf__, 3, 0)));
extern int vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__format__ (__printf__, 3, 0)));
# 310 "/usr/include/stdio.h" 3
extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) ;
extern int scanf (__const char *__restrict __format, ...) ;
extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) ;
# 338 "/usr/include/stdio.h" 3
extern int fgetc (FILE *__stream) ;
extern int getc (FILE *__stream) ;
extern int getchar (void) ;
extern int getc_unlocked (FILE *__stream) ;
extern int getchar_unlocked (void) ;
extern int fgetc_unlocked (FILE *__stream) ;
extern int fputc (int __c, FILE *__stream) ;
extern int putc (int __c, FILE *__stream) ;
extern int putchar (int __c) ;
extern int fputc_unlocked (int __c, FILE *__stream) ;
extern int putc_unlocked (int __c, FILE *__stream) ;
extern int putchar_unlocked (int __c) ;
extern int getw (FILE *__stream) ;
extern int putw (int __w, FILE *__stream) ;
extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) ;
# 404 "/usr/include/stdio.h" 3
extern char *gets (char *__s) ;
# 428 "/usr/include/stdio.h" 3
extern int fputs (__const char *__restrict __s, FILE *__restrict __stream) ;
# 438 "/usr/include/stdio.h" 3
extern int puts (__const char *__s) ;
extern int ungetc (int __c, FILE *__stream) ;
extern size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s) ;
extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ;
extern int fseek (FILE *__stream, long int __off, int __whence) ;
extern long int ftell (FILE *__stream) ;
extern void rewind (FILE *__stream) ;
# 499 "/usr/include/stdio.h" 3
extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) ;
extern int fsetpos (FILE *__stream, __const fpos_t *__pos) ;
# 536 "/usr/include/stdio.h" 3
extern void clearerr (FILE *__stream) ;
extern int feof (FILE *__stream) ;
extern int ferror (FILE *__stream) ;
extern void clearerr_unlocked (FILE *__stream) ;
extern int feof_unlocked (FILE *__stream) ;
extern int ferror_unlocked (FILE *__stream) ;
extern void perror (__const char *__s) ;
extern int sys_nerr;
extern __const char *__const sys_errlist[];
# 567 "/usr/include/stdio.h" 3
extern int fileno (FILE *__stream) ;
extern int fileno_unlocked (FILE *__stream) ;
extern FILE *popen (__const char *__command, __const char *__modes) ;
extern int pclose (FILE *__stream) ;
extern char *ctermid (char *__s) ;
extern char *cuserid (char *__s) ;
# 614 "/usr/include/stdio.h" 3
extern void flockfile (FILE *__stream) ;
extern int ftrylockfile (FILE *__stream) ;
extern void funlockfile (FILE *__stream) ;
# 1 "/usr/include/getopt.h" 1 3
# 36 "/usr/include/getopt.h" 3
extern char *optarg;
# 50 "/usr/include/getopt.h" 3
extern int optind;
extern int opterr;
extern int optopt;
# 134 "/usr/include/getopt.h" 3
extern int getopt (int __argc, char *const *__argv, const char *__shortopts);
# 630 "/usr/include/stdio.h" 2 3
# 1 "/usr/include/bits/stdio.h" 1 3
# 32 "/usr/include/bits/stdio.h" 3
extern __inline int
vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
{
return vfprintf (stdout, __fmt, __arg);
}
extern __inline int
getchar (void)
{
return _IO_getc (stdin);
}
extern __inline int
getc_unlocked (FILE *__fp)
{
return ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
}
extern __inline int
getchar_unlocked (void)
{
return ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
}
extern __inline int
putchar (int __c)
{
return _IO_putc (__c, stdout);
}
extern __inline int
fputc_unlocked (int __c, FILE *__stream)
{
return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}
extern __inline int
putc_unlocked (int __c, FILE *__stream)
{
return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}
extern __inline int
putchar_unlocked (int __c)
{
return (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
}
# 110 "/usr/include/bits/stdio.h" 3
extern __inline int
feof_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x10) != 0);
}
extern __inline int
ferror_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x20) != 0);
}
# 636 "/usr/include/stdio.h" 2 3
# 41 "/home/nisse/hack/mozilla/dist/include/nspr/plhash.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prtypes.h" 1
# 42 "/home/nisse/hack/mozilla/dist/include/nspr/plhash.h" 2
typedef struct PLHashEntry PLHashEntry;
typedef struct PLHashTable PLHashTable;
typedef PRUint32 PLHashNumber;
typedef PLHashNumber ( *PLHashFunction)(const void *key);
typedef PRIntn ( *PLHashComparator)(const void *v1, const void *v2);
typedef PRIntn ( *PLHashEnumerator)(PLHashEntry *he, PRIntn i, void *arg);
# 67 "/home/nisse/hack/mozilla/dist/include/nspr/plhash.h"
typedef struct PLHashAllocOps {
void * ( *allocTable)(void *pool, PRSize size);
void ( *freeTable)(void *pool, void *item);
PLHashEntry * ( *allocEntry)(void *pool, const void *key);
void ( *freeEntry)(void *pool, PLHashEntry *he, PRUintn flag);
} PLHashAllocOps;
struct PLHashEntry {
PLHashEntry *next;
PLHashNumber keyHash;
const void *key;
void *value;
};
struct PLHashTable {
PLHashEntry **buckets;
PRUint32 nentries;
PRUint32 shift;
PLHashFunction keyHash;
PLHashComparator keyCompare;
PLHashComparator valueCompare;
const PLHashAllocOps *allocOps;
void *allocPriv;
};
extern PLHashTable *
PL_NewHashTable(PRUint32 numBuckets, PLHashFunction keyHash,
PLHashComparator keyCompare, PLHashComparator valueCompare,
const PLHashAllocOps *allocOps, void *allocPriv);
extern void
PL_HashTableDestroy(PLHashTable *ht);
extern PLHashEntry *
PL_HashTableAdd(PLHashTable *ht, const void *key, void *value);
extern PRBool
PL_HashTableRemove(PLHashTable *ht, const void *key);
extern void *
PL_HashTableLookup(PLHashTable *ht, const void *key);
extern void *
PL_HashTableLookupConst(PLHashTable *ht, const void *key);
extern PRIntn
PL_HashTableEnumerateEntries(PLHashTable *ht, PLHashEnumerator f, void *arg);
extern PLHashNumber
PL_HashString(const void *key);
extern PRIntn
PL_CompareStrings(const void *v1, const void *v2);
extern PRIntn
PL_CompareValues(const void *v1, const void *v2);
extern PLHashEntry **
PL_HashTableRawLookup(PLHashTable *ht, PLHashNumber keyHash, const void *key);
extern PLHashEntry **
PL_HashTableRawLookupConst(PLHashTable *ht, PLHashNumber keyHash,
const void *key);
extern PLHashEntry *
PL_HashTableRawAdd(PLHashTable *ht, PLHashEntry **hep, PLHashNumber keyHash,
const void *key, void *value);
extern void
PL_HashTableRawRemove(PLHashTable *ht, PLHashEntry **hep, PLHashEntry *he);
extern PRIntn
PL_HashTableDump(PLHashTable *ht, PLHashEnumerator dump, FILE *fp);
# 45 "../../../../dist/public/security/cert.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prlong.h" 1
# 46 "../../../../dist/public/security/cert.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prlog.h" 1
# 47 "../../../../dist/public/security/cert.h" 2
# 1 "../../../../dist/public/security/seccomon.h" 1
# 49 "../../../../dist/public/security/cert.h" 2
# 1 "../../../../dist/public/security/secdert.h" 1
# 50 "../../../../dist/public/security/cert.h" 2
# 1 "../../../../dist/public/security/secoidt.h" 1
# 51 "../../../../dist/public/security/cert.h" 2
# 1 "../../../../dist/public/security/keyt.h" 1
# 52 "../../../../dist/public/security/cert.h" 2
# 1 "../../../../dist/public/security/certt.h" 1
# 53 "../../../../dist/public/security/cert.h" 2
# 65 "../../../../dist/public/security/cert.h"
extern CERTName *CERT_AsciiToName(char *string);
extern char *CERT_NameToAscii(CERTName *name);
extern CERTAVA *CERT_CopyAVA(PLArenaPool *arena, CERTAVA *src);
extern SECOidTag CERT_GetAVATag(CERTAVA *ava);
extern SECComparison CERT_CompareAVA(CERTAVA *a, CERTAVA *b);
extern CERTRDN *CERT_CreateRDN(PLArenaPool *arena, CERTAVA *avas, ...);
extern SECStatus CERT_CopyRDN(PLArenaPool *arena, CERTRDN *dest, CERTRDN *src);
extern void CERT_DestroyRDN(CERTRDN *rdn, PRBool freeit);
extern SECStatus CERT_AddAVA(PLArenaPool *arena, CERTRDN *rdn, CERTAVA *ava);
extern SECComparison CERT_CompareRDN(CERTRDN *a, CERTRDN *b);
extern CERTName *CERT_CreateName(CERTRDN *rdn, ...);
extern SECStatus CERT_CopyName(PLArenaPool *arena, CERTName *dest, CERTName *src);
extern void CERT_DestroyName(CERTName *name);
extern SECStatus CERT_AddRDN(CERTName *name, CERTRDN *rdn);
extern SECComparison CERT_CompareName(CERTName *a, CERTName *b);
extern char *CERT_FormatName (CERTName *name);
extern char *CERT_Hexify (SECItem *i, int do_colon);
# 169 "../../../../dist/public/security/cert.h"
extern CERTValidity *CERT_CreateValidity(int64 notBefore, int64 notAfter);
extern void CERT_DestroyValidity(CERTValidity *v);
extern SECStatus CERT_CopyValidity
(PLArenaPool *arena, CERTValidity *dest, CERTValidity *src);
# 196 "../../../../dist/public/security/cert.h"
PRInt32 CERT_GetSlopTime(void);
SECStatus CERT_SetSlopTime(PRInt32 slop);
# 208 "../../../../dist/public/security/cert.h"
extern CERTCertificate *
CERT_CreateCertificate (unsigned long serialNumber, CERTName *issuer,
CERTValidity *validity, CERTCertificateRequest *req);
# 219 "../../../../dist/public/security/cert.h"
extern void CERT_DestroyCertificate(CERTCertificate *cert);
extern CERTCertificate *CERT_DupCertificate(CERTCertificate *c);
# 234 "../../../../dist/public/security/cert.h"
extern CERTCertificateRequest *
CERT_CreateCertificateRequest (CERTName *name, CERTSubjectPublicKeyInfo *spki,
SECItem **attributes);
extern void CERT_DestroyCertificateRequest(CERTCertificateRequest *r);
extern SECKEYPublicKey *CERT_ExtractPublicKey(CERTCertificate *cert);
extern SECKEYPublicKey *CERT_KMIDPublicKey(CERTCertificate *cert);
extern KeyType CERT_GetCertKeyType (CERTSubjectPublicKeyInfo *spki);
extern SECStatus CERT_InitCertDB(CERTCertDBHandle *handle);
extern void CERT_SetDefaultCertDB(CERTCertDBHandle *handle);
extern CERTCertDBHandle *CERT_GetDefaultCertDB(void);
extern CERTCertList *CERT_GetCertChainFromCert(CERTCertificate *cert,
int64 time,
SECCertUsage usage);
# 294 "../../../../dist/public/security/cert.h"
extern CERTAVA *CERT_CreateAVA
(PLArenaPool *arena, SECOidTag kind, int valueType, char *value);
extern SECStatus CERT_NameFromDERCert(SECItem *derCert, SECItem *derName);
extern SECStatus CERT_IssuerNameFromDERCert(SECItem *derCert,
SECItem *derName);
# 321 "../../../../dist/public/security/cert.h"
extern SECStatus CERT_KeyFromDERCert(PLArenaPool *arena, SECItem *derCert, SECItem *key);
extern SECStatus CERT_KeyFromIssuerAndSN(PLArenaPool *arena, SECItem *issuer,
SECItem *sn, SECItem *key);
# 333 "../../../../dist/public/security/cert.h"
extern SECStatus CERT_KeyFromDERCrl(PLArenaPool *arena, SECItem *derCrl, SECItem *key);
extern SECStatus CERT_OpenCertDB(CERTCertDBHandle *handle, PRBool readOnly,
CERTDBNameFunc namecb, void *cbarg);
extern SECStatus CERT_OpenCertDBFilename(CERTCertDBHandle *handle,
char *certdbname, PRBool readOnly);
extern SECStatus CERT_OpenVolatileCertDB(CERTCertDBHandle *handle);
extern SECStatus CERT_VerifyCertName(CERTCertificate *cert, const char *hostname);
extern SECStatus CERT_AddOKDomainName(CERTCertificate *cert, const char *hostname);
# 371 "../../../../dist/public/security/cert.h"
extern CERTCertificate *
__CERT_DecodeDERCertificate (SECItem *derSignedCert, PRBool copyDER, char *nickname);
# 381 "../../../../dist/public/security/cert.h"
extern CERTSignedCrl *
CERT_DecodeDERCrl (PLArenaPool *arena, SECItem *derSignedCrl,int type);
extern CERTSignedCrl *
CERT_ImportCRL (CERTCertDBHandle *handle, SECItem *derCRL, char *url,
int type, void * wincx);
extern void CERT_DestroyCrl (CERTSignedCrl *crl);
extern CERTCertificate *
__CERT_NewTempCertificate (CERTCertDBHandle *handle, SECItem *derCert,
char *nickname, PRBool isperm, PRBool copyDER);
extern CERTCertificate *
CERT_AddTempCertificate (CERTCertDBHandle *handle, certDBEntryCert *entry,
PRBool isperm);
extern SECStatus
CERT_AddTempCertToPerm (CERTCertificate *cert, char *nickname, CERTCertTrust *trust);
extern CERTCertificate *CERT_FindCertByKey(CERTCertDBHandle *handle, SECItem *key);
# 434 "../../../../dist/public/security/cert.h"
CERTCertificate *
CERT_FindCertByKeyNoLocking(CERTCertDBHandle *handle, SECItem *certKey);
extern CERTCertificate *
CERT_FindCertByName (CERTCertDBHandle *handle, SECItem *name);
extern CERTCertificate *
CERT_FindCertByNameString (CERTCertDBHandle *handle, char *name);
extern CERTCertificate *
CERT_FindCertByKeyID (CERTCertDBHandle *handle, SECItem *name, SECItem *keyID);
extern CERTCertificate *
CERT_FindCertByIssuerAndSN (CERTCertDBHandle *handle, CERTIssuerAndSN *issuerAndSN);
extern CERTCertificate *
CERT_FindCertByNickname (CERTCertDBHandle *handle, char *nickname);
extern CERTCertificate *
CERT_FindCertByDERCert(CERTCertDBHandle *handle, SECItem *derCert);
CERTCertificate *
CERT_FindCertByEmailAddr(CERTCertDBHandle *handle, char *emailAddr);
CERTCertificate *
CERT_FindCertByNicknameOrEmailAddr(CERTCertDBHandle *handle, char *name);
extern CERTCertificate *
CERT_FindCertBySPKDigest(CERTCertDBHandle *handle, SECItem *spkDigest);
CERTCertificate *
CERT_FindCertIssuer(CERTCertificate *cert, int64 validTime, SECCertUsage usage);
extern SECStatus CERT_DeleteTempCertificate(CERTCertificate *cert);
extern void __CERT_ClosePermCertDB(CERTCertDBHandle *handle);
# 526 "../../../../dist/public/security/cert.h"
extern SECCertTimeValidity CERT_CheckCertValidTimes(CERTCertificate *cert,
PRTime t,
PRBool allowOverride);
# 538 "../../../../dist/public/security/cert.h"
extern SECStatus CERT_CertTimesValid(CERTCertificate *cert);
extern SECStatus
CERT_GetCertTimes (CERTCertificate *c, PRTime *notBefore, PRTime *notAfter);
extern CERTIssuerAndSN *CERT_GetCertIssuerAndSN(PLArenaPool *,
CERTCertificate *);
extern SECStatus CERT_VerifySignedData(CERTSignedData *sd,
CERTCertificate *cert,
int64 t,
void *wincx);
# 572 "../../../../dist/public/security/cert.h"
extern SECStatus
CERT_VerifyCert(CERTCertDBHandle *handle, CERTCertificate *cert,
PRBool checkSig, SECCertUsage certUsage, int64 t,
void *wincx, CERTVerifyLog *log);
extern SECStatus
CERT_VerifyCertNow(CERTCertDBHandle *handle, CERTCertificate *cert,
PRBool checkSig, SECCertUsage certUsage, void *wincx);
extern CERTCertificate *
CERT_FindExpiredIssuer (CERTCertDBHandle *handle, CERTCertificate *cert);
extern CERTCertificate *CERT_ConvertAndDecodeCertificate(char *certstr);
# 604 "../../../../dist/public/security/cert.h"
extern CERTCertificate *CERT_DecodeCertFromPackage(char *certbuf, int certlen);
extern SECStatus
CERT_ImportCAChain (SECItem *certs, int numcerts, SECCertUsage certUsage);
# 617 "../../../../dist/public/security/cert.h"
typedef SECStatus ( *CERTImportCertificateFunc)
(void *arg, SECItem **certs, int numcerts);
extern SECStatus
CERT_DecodeCertPackage(char *certbuf, int certlen, CERTImportCertificateFunc f,
void *arg);
# 631 "../../../../dist/public/security/cert.h"
extern char *CERT_HTMLCertInfo(CERTCertificate *cert, PRBool showImages,
PRBool showIssuer);
# 642 "../../../../dist/public/security/cert.h"
extern SECItem *CERT_DecodeAVAValue(SECItem *derAVAValue);
extern char *CERT_GetCommonName(CERTName *name);
extern char *CERT_GetCertificateEmailAddress(CERTCertificate *cert);
extern char *CERT_GetCertEmailAddress(CERTName *name);
extern char *CERT_GetCommonName(CERTName *name);
extern char *CERT_GetCountryName(CERTName *name);
extern char *CERT_GetLocalityName(CERTName *name);
extern char *CERT_GetStateName(CERTName *name);
extern char *CERT_GetOrgName(CERTName *name);
extern char *CERT_GetOrgUnitName(CERTName *name);
extern char *CERT_GetDomainComponentName(CERTName *name);
extern char *CERT_GetCertUid(CERTName *name);
extern SECStatus CERT_GetCertTrust(CERTCertificate *cert, CERTCertTrust *trust);
extern SECStatus
CERT_ChangeCertTrust (CERTCertDBHandle *handle, CERTCertificate *cert,
CERTCertTrust *trust);
extern SECStatus
CERT_ChangeCertTrustByUsage(CERTCertDBHandle *certdb, CERTCertificate *cert,
SECCertUsage usage);
# 694 "../../../../dist/public/security/cert.h"
extern void *CERT_StartCertExtensions(CERTCertificate *cert);
# 705 "../../../../dist/public/security/cert.h"
extern SECStatus CERT_AddExtension (void *exthandle, int idtag,
SECItem *value, PRBool critical, PRBool copyData);
extern SECStatus CERT_AddExtensionByOID (void *exthandle, SECItem *oid,
SECItem *value, PRBool critical, PRBool copyData);
extern SECStatus CERT_EncodeAndAddExtension
(void *exthandle, int idtag, void *value, PRBool critical,
const SEC_ASN1Template *atemplate);
extern SECStatus CERT_EncodeAndAddBitStrExtension
(void *exthandle, int idtag, SECItem *value, PRBool critical);
extern SECStatus CERT_FinishExtensions(void *exthandle);
extern SECStatus CERT_GetExtenCriticality
(CERTCertExtension **extensions, int tag, PRBool *isCritical);
extern void
CERT_DestroyOidSequence(CERTOidSequence *oidSeq);
# 747 "../../../../dist/public/security/cert.h"
extern SECStatus CERT_EncodeBasicConstraintValue
(PLArenaPool *arena, CERTBasicConstraints *value, SECItem *encodedValue);
extern SECStatus CERT_EncodeAuthKeyID
(PLArenaPool *arena, CERTAuthKeyID *value, SECItem *encodedValue);
extern SECStatus CERT_EncodeCRLDistributionPoints
(PLArenaPool *arena, CERTCrlDistributionPoints *value,SECItem *derValue);
extern SECStatus CERT_DecodeBasicConstraintValue
(CERTBasicConstraints *value, SECItem *encodedValue);
extern CERTAuthKeyID *CERT_DecodeAuthKeyID
(PLArenaPool *arena, SECItem *encodedValue);
# 787 "../../../../dist/public/security/cert.h"
extern CERTCrlDistributionPoints * CERT_DecodeCRLDistributionPoints
(PLArenaPool *arena, SECItem *der);
extern void *CERT_GetGeneralNameByType
(CERTGeneralName *genNames, CERTGeneralNameType type, PRBool derFormat);
extern CERTOidSequence *
CERT_DecodeOidSequence(SECItem *seqItem);
# 807 "../../../../dist/public/security/cert.h"
extern SECStatus CERT_FindCertExtension
(CERTCertificate *cert, int tag, SECItem *value);
extern SECStatus CERT_FindNSCertTypeExtension
(CERTCertificate *cert, SECItem *value);
extern char * CERT_FindNSStringExtension (CERTCertificate *cert, int oidtag);
extern SECStatus CERT_FindIssuerCertExtension
(CERTCertificate *cert, int tag, SECItem *value);
extern SECStatus CERT_FindCertExtensionByOID
(CERTCertificate *cert, SECItem *oid, SECItem *value);
extern char *CERT_FindCertURLExtension (CERTCertificate *cert, int tag,
int catag);
extern CERTAuthKeyID * CERT_FindAuthKeyIDExten (PLArenaPool *arena,CERTCertificate *cert);
extern SECStatus CERT_FindBasicConstraintExten
(CERTCertificate *cert, CERTBasicConstraints *value);
extern CERTCrlDistributionPoints * CERT_FindCRLDistributionPoints
(CERTCertificate *cert);
extern SECStatus CERT_FindKeyUsageExtension (CERTCertificate *cert,
SECItem *value);
extern SECStatus CERT_FindSubjectKeyIDExten (CERTCertificate *cert,
SECItem *retItem);
# 862 "../../../../dist/public/security/cert.h"
extern SECStatus CERT_CheckCertUsage (CERTCertificate *cert,
unsigned char usage);
extern SECStatus CERT_FindCRLExtensionByOID
(CERTCrl *crl, SECItem *oid, SECItem *value);
extern SECStatus CERT_FindCRLExtension
(CERTCrl *crl, int tag, SECItem *value);
extern SECStatus
CERT_FindInvalidDateExten (CERTCrl *crl, int64 *value);
extern void *CERT_StartCRLExtensions (CERTCrl *crl);
extern CERTCertNicknames *CERT_GetCertNicknames (CERTCertDBHandle *handle,
int what, void *wincx);
extern SECStatus CERT_FindCRLNumberExten (CERTCrl *crl, CERTCrlNumber *value);
extern void CERT_FreeNicknames(CERTCertNicknames *nicknames);
extern PRBool CERT_CompareCerts(CERTCertificate *c1, CERTCertificate *c2);
extern PRBool CERT_CompareCertsForRedirection(CERTCertificate *c1,
CERTCertificate *c2);
extern CERTDistNames *CERT_GetSSLCACerts(CERTCertDBHandle *handle);
extern void CERT_FreeDistNames(CERTDistNames *names);
extern CERTDistNames *CERT_DistNamesFromNicknames
(CERTCertDBHandle *handle, char **nicknames, int nnames);
extern CERTCertificateList *
CERT_CertChainFromCert(CERTCertificate *cert, SECCertUsage usage,
PRBool includeRoot);
extern CERTCertificateList *
CERT_CertListFromCert(CERTCertificate *cert);
extern CERTCertificateList *
CERT_DupCertList(CERTCertificateList * oldList);
extern void CERT_DestroyCertificateList(CERTCertificateList *list);
PRBool CERT_IsNewer(CERTCertificate *certa, CERTCertificate *certb);
typedef SECStatus (* CERTCertCallback)(CERTCertificate *cert, void *arg);
SECStatus
__CERT_TraversePermCertsForSubject(CERTCertDBHandle *handle, SECItem *derSubject,
CERTCertCallback cb, void *cbarg);
int
CERT_NumPermCertsForSubject(CERTCertDBHandle *handle, SECItem *derSubject);
SECStatus
__CERT_TraversePermCertsForNickname(CERTCertDBHandle *handle, char *nickname,
CERTCertCallback cb, void *cbarg);
int
CERT_NumPermCertsForNickname(CERTCertDBHandle *handle, char *nickname);
int
CERT_NumCertsForCertSubject(CERTCertificate *cert);
int
CERT_NumPermCertsForCertSubject(CERTCertificate *cert);
SECStatus
CERT_TraverseCertsForSubject(CERTCertDBHandle *handle,
CERTSubjectList *subjectList,
CERTCertCallback cb, void *cbarg);
PRBool
CERT_IsCertRevoked(CERTCertificate *cert);
void
CERT_DestroyCertArray(CERTCertificate **certs, unsigned int ncerts);
char *CERT_FixupEmailAddr(char *emailAddr);
SECStatus
CERT_DecodeTrustString(CERTCertTrust *trust, char *trusts);
char *
CERT_EncodeTrustString(CERTCertTrust *trust);
CERTCertificate *
CERT_PrevSubjectCert(CERTCertificate *cert);
CERTCertificate *
CERT_NextSubjectCert(CERTCertificate *cert);
SECStatus
CERT_ImportCerts(CERTCertDBHandle *certdb, SECCertUsage usage,
unsigned int ncerts, SECItem **derCerts,
CERTCertificate ***retCerts, PRBool keepCerts,
PRBool caOnly, char *nickname);
SECStatus
CERT_SaveImportedCert(CERTCertificate *cert, SECCertUsage usage,
PRBool caOnly, char *nickname);
char *
CERT_MakeCANickname(CERTCertificate *cert);
PRBool
CERT_IsCACert(CERTCertificate *cert, unsigned int *rettype);
PRBool
CERT_IsCADERCert(SECItem *derCert, unsigned int *rettype);
SECStatus
CERT_SaveSMimeProfile(CERTCertificate *cert, SECItem *emailProfile,
SECItem *profileTime);
SECItem *
CERT_FindSMimeProfile(CERTCertificate *cert);
int
CERT_GetDBContentVersion(CERTCertDBHandle *handle);
void
CERT_SetDBContentVersion(int version, CERTCertDBHandle *handle);
SECStatus
CERT_AddNewCerts(CERTCertDBHandle *handle);
CERTPackageType
CERT_CertPackageType(SECItem *package, SECItem *certitem);
CERTCertificatePolicies *
CERT_DecodeCertificatePoliciesExtension(SECItem *extnValue);
void
CERT_DestroyCertificatePoliciesExtension(CERTCertificatePolicies *policies);
CERTUserNotice *
CERT_DecodeUserNotice(SECItem *noticeItem);
void
CERT_DestroyUserNotice(CERTUserNotice *userNotice);
typedef char * (* CERTPolicyStringCallback)(char *org,
unsigned long noticeNumber,
void *arg);
void
CERT_SetCAPolicyStringCallback(CERTPolicyStringCallback cb, void *cbarg);
char *
CERT_GetCertCommentString(CERTCertificate *cert);
PRBool
CERT_GovtApprovedBitSet(CERTCertificate *cert);
SECStatus
CERT_AddPermNickname(CERTCertificate *cert, char *nickname);
CERTCertificate *
CERT_FindCertByUsage(CERTCertificate *basecert, unsigned int requiredKeyUsage);
CERTCertList *
CERT_MatchUserCert(CERTCertDBHandle *handle,
SECCertUsage usage,
int nCANames, char **caNames,
void *proto_win);
CERTCertList *
CERT_NewCertList(void);
void
CERT_DestroyCertList(CERTCertList *certs);
void
CERT_RemoveCertListNode(CERTCertListNode *node);
SECStatus
CERT_AddCertToListTail(CERTCertList *certs, CERTCertificate *cert);
SECStatus
CERT_AddCertToListHead(CERTCertList *certs, CERTCertificate *cert);
SECStatus
CERT_AddCertToListTailWithData(CERTCertList *certs, CERTCertificate *cert,
void *appData);
SECStatus
CERT_AddCertToListHeadWithData(CERTCertList *certs, CERTCertificate *cert,
void *appData);
typedef PRBool (* CERTSortCallback)(CERTCertificate *certa,
CERTCertificate *certb,
void *arg);
SECStatus
CERT_AddCertToListSorted(CERTCertList *certs, CERTCertificate *cert,
CERTSortCallback f, void *arg);
PRBool
CERT_SortCBValidity(CERTCertificate *certa,
CERTCertificate *certb,
void *arg);
SECStatus
CERT_CheckForEvilCert(CERTCertificate *cert);
CERTGeneralName *
CERT_GetCertificateNames(CERTCertificate *cert, PLArenaPool *arena);
int
CERT_GetNamesLength(CERTGeneralName *names);
CERTCertificate *
CERT_CompareNameSpace(CERTCertificate *cert,
CERTGeneralName *namesList,
SECItem *namesListIndex,
PLArenaPool *arena,
CERTCertDBHandle *handle);
SECStatus
CERT_EncodeSubjectKeyID(PLArenaPool *arena, char *value, int len, SECItem *encodedValue);
char *
CERT_GetNickName(CERTCertificate *cert, CERTCertDBHandle *handle, PLArenaPool *nicknameArena);
CERTCertList *
CERT_CreateSubjectCertList(CERTCertList *certList, CERTCertDBHandle *handle,
SECItem *name, int64 sorttime, PRBool validOnly);
CERTCertList *
CERT_CreateNicknameCertList(CERTCertList *certList, CERTCertDBHandle *handle,
char *nickname, int64 sorttime, PRBool validOnly);
CERTCertList *
CERT_CreateEmailAddrCertList(CERTCertList *certList, CERTCertDBHandle *handle,
char *emailAddr, int64 sorttime, PRBool validOnly);
SECStatus
CERT_FilterCertListByUsage(CERTCertList *certList, SECCertUsage usage,
PRBool ca);
SECStatus
CERT_CheckKeyUsage(CERTCertificate *cert, unsigned int requiredUsage);
SECStatus
CERT_KeyUsageAndTypeForCertUsage(SECCertUsage usage,
PRBool ca,
unsigned int *retKeyUsage,
unsigned int *retCertType);
SECStatus
CERT_TrustFlagsForCACertUsage(SECCertUsage usage,
unsigned int *retFlags,
SECTrustType *retTrustType);
# 1194 "../../../../dist/public/security/cert.h"
CERTCertList *
CERT_FindUserCertsByUsage(CERTCertDBHandle *handle,
SECCertUsage usage,
PRBool oneCertPerName,
PRBool validOnly,
void *proto_win);
# 1210 "../../../../dist/public/security/cert.h"
CERTCertificate *
CERT_FindUserCertByUsage(CERTCertDBHandle *handle,
char *nickname,
SECCertUsage usage,
PRBool validOnly,
void *proto_win);
# 1227 "../../../../dist/public/security/cert.h"
SECStatus
CERT_FilterCertListByCANames(CERTCertList *certList, int nCANames,
char **caNames, SECCertUsage usage);
# 1240 "../../../../dist/public/security/cert.h"
CERTCertNicknames *
CERT_NicknameStringsFromCertList(CERTCertList *certList, char *expiredString,
char *notYetGoodString);
# 1256 "../../../../dist/public/security/cert.h"
char *
CERT_ExtractNicknameString(char *namestring, char *expiredString,
char *notYetGoodString);
# 1273 "../../../../dist/public/security/cert.h"
char *
CERT_GetCertNicknameWithValidity(PLArenaPool *arena, CERTCertificate *cert,
char *expiredString, char *notYetGoodString);
char *
CERT_DerNameToAscii(SECItem *dername);
# 1294 "../../../../dist/public/security/cert.h"
CERTCertificate *
CERT_FindMatchingCert(CERTCertDBHandle *handle, SECItem *derName,
CERTCertOwner owner, SECCertUsage usage,
PRBool preferTrusted, int64 validTime, PRBool validOnly);
void
CERT_DestroyGeneralName(CERTGeneralName *name);
void
CERT_DestroyGeneralNameList(CERTGeneralNameList *list);
CERTGeneralNameList *
CERT_CreateGeneralNameList(CERTGeneralName *name);
SECStatus
CERT_CompareGeneralNameLists(CERTGeneralNameList *a, CERTGeneralNameList *b);
void *
CERT_GetGeneralNameFromListByType(CERTGeneralNameList *list,
CERTGeneralNameType type,
PLArenaPool *arena);
void
CERT_AddGeneralNameToList(CERTGeneralNameList *list,
CERTGeneralNameType type,
void *data, SECItem *oid);
CERTGeneralNameList *
CERT_DupGeneralNameList(CERTGeneralNameList *list);
int
CERT_GetNamesLength(CERTGeneralName *names);
# 1348 "../../../../dist/public/security/cert.h"
void
CERT_LockDB(CERTCertDBHandle *handle);
void
CERT_UnlockDB(CERTCertDBHandle *handle);
CERTStatusConfig *
CERT_GetStatusConfig(CERTCertDBHandle *handle);
void
CERT_SetStatusConfig(CERTCertDBHandle *handle, CERTStatusConfig *config);
void
CERT_LockCertRefCount(CERTCertificate *cert);
void
CERT_UnlockCertRefCount(CERTCertificate *cert);
void
CERT_LockCertTrust(CERTCertificate *cert);
void
CERT_UnlockCertTrust(CERTCertificate *cert);
# 1410 "../../../../dist/public/security/cert.h"
extern SECItem *
CERT_SPKDigestValueForCert(PLArenaPool *arena, CERTCertificate *cert,
SECOidTag digestAlg, SECItem *fill);
extern SECStatus CERT_GetCertType(CERTCertificate *cert);
# 43 "p12e.c" 2
# 1 "../../../../dist/public/security/secpkcs7.h" 1
# 44 "p12e.c" 2
# 1 "../../../../dist/public/security/secasn1.h" 1
# 45 "../../../../dist/public/security/secasn1.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 46 "../../../../dist/public/security/secasn1.h" 2
# 1 "../../../../dist/public/security/seccomon.h" 1
# 48 "../../../../dist/public/security/secasn1.h" 2
# 1 "../../../../dist/public/security/secasn1t.h" 1
# 49 "../../../../dist/public/security/secasn1.h" 2
# 62 "../../../../dist/public/security/secasn1.h"
extern SEC_ASN1DecoderContext *SEC_ASN1DecoderStart(PLArenaPool *pool,
void *dest,
const SEC_ASN1Template *t);
extern SECStatus SEC_ASN1DecoderUpdate(SEC_ASN1DecoderContext *cx,
const char *buf,
unsigned long len);
extern SECStatus SEC_ASN1DecoderFinish(SEC_ASN1DecoderContext *cx);
extern void SEC_ASN1DecoderSetFilterProc(SEC_ASN1DecoderContext *cx,
SEC_ASN1WriteProc fn,
void *arg, PRBool no_store);
extern void SEC_ASN1DecoderClearFilterProc(SEC_ASN1DecoderContext *cx);
extern void SEC_ASN1DecoderSetNotifyProc(SEC_ASN1DecoderContext *cx,
SEC_ASN1NotifyProc fn,
void *arg);
extern void SEC_ASN1DecoderClearNotifyProc(SEC_ASN1DecoderContext *cx);
extern SECStatus SEC_ASN1Decode(PLArenaPool *pool, void *dest,
const SEC_ASN1Template *t,
const char *buf, long len);
extern SECStatus SEC_ASN1DecodeItem(PLArenaPool *pool, void *dest,
const SEC_ASN1Template *t,
SECItem *item);
extern SEC_ASN1EncoderContext *SEC_ASN1EncoderStart(void *src,
const SEC_ASN1Template *t,
SEC_ASN1WriteProc fn,
void *output_arg);
extern SECStatus SEC_ASN1EncoderUpdate(SEC_ASN1EncoderContext *cx,
const char *buf,
unsigned long len);
extern void SEC_ASN1EncoderFinish(SEC_ASN1EncoderContext *cx);
extern void SEC_ASN1EncoderSetNotifyProc(SEC_ASN1EncoderContext *cx,
SEC_ASN1NotifyProc fn,
void *arg);
extern void SEC_ASN1EncoderClearNotifyProc(SEC_ASN1EncoderContext *cx);
extern void SEC_ASN1EncoderSetStreaming(SEC_ASN1EncoderContext *cx);
extern void SEC_ASN1EncoderClearStreaming(SEC_ASN1EncoderContext *cx);
extern void sec_ASN1EncoderSetDER(SEC_ASN1EncoderContext *cx);
extern void sec_ASN1EncoderClearDER(SEC_ASN1EncoderContext *cx);
extern void SEC_ASN1EncoderSetTakeFromBuf(SEC_ASN1EncoderContext *cx);
extern void SEC_ASN1EncoderClearTakeFromBuf(SEC_ASN1EncoderContext *cx);
extern SECStatus SEC_ASN1Encode(void *src, const SEC_ASN1Template *t,
SEC_ASN1WriteProc output_proc,
void *output_arg);
extern SECItem * SEC_ASN1EncodeItem(PLArenaPool *pool, SECItem *dest,
void *src, const SEC_ASN1Template *t);
extern SECItem * SEC_ASN1EncodeInteger(PLArenaPool *pool,
SECItem *dest, long value);
extern SECItem * SEC_ASN1EncodeUnsignedInteger(PLArenaPool *pool,
SECItem *dest,
unsigned long value);
extern SECStatus SEC_ASN1DecodeInteger(SECItem *src,
unsigned long *value);
# 151 "../../../../dist/public/security/secasn1.h"
extern int SEC_ASN1LengthLength (unsigned long len);
extern int SEC_ASN1EncodeLength(unsigned char *buf,int value);
# 168 "../../../../dist/public/security/secasn1.h"
extern const SEC_ASN1Template *
SEC_ASN1GetSubtemplate (const SEC_ASN1Template *inTemplate, void *thing,
PRBool encoding);
# 185 "../../../../dist/public/security/secasn1.h"
extern const SEC_ASN1Template SEC_AnyTemplate[];
extern const SEC_ASN1Template SEC_BitStringTemplate[];
extern const SEC_ASN1Template SEC_BMPStringTemplate[];
extern const SEC_ASN1Template SEC_BooleanTemplate[];
extern const SEC_ASN1Template SEC_EnumeratedTemplate[];
extern const SEC_ASN1Template SEC_GeneralizedTimeTemplate[];
extern const SEC_ASN1Template SEC_IA5StringTemplate[];
extern const SEC_ASN1Template SEC_IntegerTemplate[];
extern const SEC_ASN1Template SEC_NullTemplate[];
extern const SEC_ASN1Template SEC_ObjectIDTemplate[];
extern const SEC_ASN1Template SEC_OctetStringTemplate[];
extern const SEC_ASN1Template SEC_PrintableStringTemplate[];
extern const SEC_ASN1Template SEC_T61StringTemplate[];
extern const SEC_ASN1Template SEC_UniversalStringTemplate[];
extern const SEC_ASN1Template SEC_UTCTimeTemplate[];
extern const SEC_ASN1Template SEC_UTF8StringTemplate[];
extern const SEC_ASN1Template SEC_VisibleStringTemplate[];
extern const SEC_ASN1Template SEC_PointerToAnyTemplate[];
extern const SEC_ASN1Template SEC_PointerToBitStringTemplate[];
extern const SEC_ASN1Template SEC_PointerToBMPStringTemplate[];
extern const SEC_ASN1Template SEC_PointerToBooleanTemplate[];
extern const SEC_ASN1Template SEC_PointerToEnumeratedTemplate[];
extern const SEC_ASN1Template SEC_PointerToGeneralizedTimeTemplate[];
extern const SEC_ASN1Template SEC_PointerToIA5StringTemplate[];
extern const SEC_ASN1Template SEC_PointerToIntegerTemplate[];
extern const SEC_ASN1Template SEC_PointerToNullTemplate[];
extern const SEC_ASN1Template SEC_PointerToObjectIDTemplate[];
extern const SEC_ASN1Template SEC_PointerToOctetStringTemplate[];
extern const SEC_ASN1Template SEC_PointerToPrintableStringTemplate[];
extern const SEC_ASN1Template SEC_PointerToT61StringTemplate[];
extern const SEC_ASN1Template SEC_PointerToUniversalStringTemplate[];
extern const SEC_ASN1Template SEC_PointerToUTCTimeTemplate[];
extern const SEC_ASN1Template SEC_PointerToUTF8StringTemplate[];
extern const SEC_ASN1Template SEC_PointerToVisibleStringTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfAnyTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfBitStringTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfBMPStringTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfBooleanTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfEnumeratedTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfGeneralizedTimeTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfIA5StringTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfIntegerTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfNullTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfObjectIDTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfOctetStringTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfPrintableStringTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfT61StringTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfUniversalStringTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfUTCTimeTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfUTF8StringTemplate[];
extern const SEC_ASN1Template SEC_SequenceOfVisibleStringTemplate[];
extern const SEC_ASN1Template SEC_SetOfAnyTemplate[];
extern const SEC_ASN1Template SEC_SetOfBitStringTemplate[];
extern const SEC_ASN1Template SEC_SetOfBMPStringTemplate[];
extern const SEC_ASN1Template SEC_SetOfBooleanTemplate[];
extern const SEC_ASN1Template SEC_SetOfEnumeratedTemplate[];
extern const SEC_ASN1Template SEC_SetOfGeneralizedTimeTemplate[];
extern const SEC_ASN1Template SEC_SetOfIA5StringTemplate[];
extern const SEC_ASN1Template SEC_SetOfIntegerTemplate[];
extern const SEC_ASN1Template SEC_SetOfNullTemplate[];
extern const SEC_ASN1Template SEC_SetOfObjectIDTemplate[];
extern const SEC_ASN1Template SEC_SetOfOctetStringTemplate[];
extern const SEC_ASN1Template SEC_SetOfPrintableStringTemplate[];
extern const SEC_ASN1Template SEC_SetOfT61StringTemplate[];
extern const SEC_ASN1Template SEC_SetOfUniversalStringTemplate[];
extern const SEC_ASN1Template SEC_SetOfUTCTimeTemplate[];
extern const SEC_ASN1Template SEC_SetOfUTF8StringTemplate[];
extern const SEC_ASN1Template SEC_SetOfVisibleStringTemplate[];
extern const SEC_ASN1Template SEC_SkipTemplate[];
extern const SEC_ASN1Template * NSS_Get_SEC_AnyTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_SEC_BMPStringTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_SEC_BitStringTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_SEC_GeneralizedTimeTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_SEC_IA5StringTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_SEC_IntegerTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_SEC_ObjectIDTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_SEC_OctetStringTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_SEC_UTCTimeTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_SEC_PointerToAnyTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_SEC_PointerToOctetStringTemplate (void *arg, PRBool enc);
extern const SEC_ASN1Template * NSS_Get_SEC_SetOfAnyTemplate (void *arg, PRBool enc);
# 45 "p12e.c" 2
# 1 "../../../../dist/public/security/secerr.h" 1
# 45 "../../../../dist/public/security/secerr.h"
typedef enum {
SEC_ERROR_IO = (-0x2000) + 0,
SEC_ERROR_LIBRARY_FAILURE = (-0x2000) + 1,
SEC_ERROR_BAD_DATA = (-0x2000) + 2,
SEC_ERROR_OUTPUT_LEN = (-0x2000) + 3,
SEC_ERROR_INPUT_LEN = (-0x2000) + 4,
SEC_ERROR_INVALID_ARGS = (-0x2000) + 5,
SEC_ERROR_INVALID_ALGORITHM = (-0x2000) + 6,
SEC_ERROR_INVALID_AVA = (-0x2000) + 7,
SEC_ERROR_INVALID_TIME = (-0x2000) + 8,
SEC_ERROR_BAD_DER = (-0x2000) + 9,
SEC_ERROR_BAD_SIGNATURE = (-0x2000) + 10,
SEC_ERROR_EXPIRED_CERTIFICATE = (-0x2000) + 11,
SEC_ERROR_REVOKED_CERTIFICATE = (-0x2000) + 12,
SEC_ERROR_UNKNOWN_ISSUER = (-0x2000) + 13,
SEC_ERROR_BAD_KEY = (-0x2000) + 14,
SEC_ERROR_BAD_PASSWORD = (-0x2000) + 15,
SEC_ERROR_RETRY_PASSWORD = (-0x2000) + 16,
SEC_ERROR_NO_NODELOCK = (-0x2000) + 17,
SEC_ERROR_BAD_DATABASE = (-0x2000) + 18,
SEC_ERROR_NO_MEMORY = (-0x2000) + 19,
SEC_ERROR_UNTRUSTED_ISSUER = (-0x2000) + 20,
SEC_ERROR_UNTRUSTED_CERT = (-0x2000) + 21,
SEC_ERROR_DUPLICATE_CERT = ((-0x2000) + 22),
SEC_ERROR_DUPLICATE_CERT_NAME = ((-0x2000) + 23),
SEC_ERROR_ADDING_CERT = ((-0x2000) + 24),
SEC_ERROR_FILING_KEY = ((-0x2000) + 25),
SEC_ERROR_NO_KEY = ((-0x2000) + 26),
SEC_ERROR_CERT_VALID = ((-0x2000) + 27),
SEC_ERROR_CERT_NOT_VALID = ((-0x2000) + 28),
SEC_ERROR_CERT_NO_RESPONSE = ((-0x2000) + 29),
SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE = ((-0x2000) + 30),
SEC_ERROR_CRL_EXPIRED = ((-0x2000) + 31),
SEC_ERROR_CRL_BAD_SIGNATURE = ((-0x2000) + 32),
SEC_ERROR_CRL_INVALID = ((-0x2000) + 33),
SEC_ERROR_EXTENSION_VALUE_INVALID = ((-0x2000) + 34),
SEC_ERROR_EXTENSION_NOT_FOUND = ((-0x2000) + 35),
SEC_ERROR_CA_CERT_INVALID = ((-0x2000) + 36),
SEC_ERROR_PATH_LEN_CONSTRAINT_INVALID = ((-0x2000) + 37),
SEC_ERROR_CERT_USAGES_INVALID = ((-0x2000) + 38),
SEC_INTERNAL_ONLY = ((-0x2000) + 39),
SEC_ERROR_INVALID_KEY = ((-0x2000) + 40),
SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION = ((-0x2000) + 41),
SEC_ERROR_OLD_CRL = ((-0x2000) + 42),
SEC_ERROR_NO_EMAIL_CERT = ((-0x2000) + 43),
SEC_ERROR_NO_RECIPIENT_CERTS_QUERY = ((-0x2000) + 44),
SEC_ERROR_NOT_A_RECIPIENT = ((-0x2000) + 45),
SEC_ERROR_PKCS7_KEYALG_MISMATCH = ((-0x2000) + 46),
SEC_ERROR_PKCS7_BAD_SIGNATURE = ((-0x2000) + 47),
SEC_ERROR_UNSUPPORTED_KEYALG = ((-0x2000) + 48),
SEC_ERROR_DECRYPTION_DISALLOWED = ((-0x2000) + 49),
XP_SEC_FORTEZZA_BAD_CARD = ((-0x2000) + 50),
XP_SEC_FORTEZZA_NO_CARD = ((-0x2000) + 51),
XP_SEC_FORTEZZA_NONE_SELECTED = ((-0x2000) + 52),
XP_SEC_FORTEZZA_MORE_INFO = ((-0x2000) + 53),
XP_SEC_FORTEZZA_PERSON_NOT_FOUND = ((-0x2000) + 54),
XP_SEC_FORTEZZA_NO_MORE_INFO = ((-0x2000) + 55),
XP_SEC_FORTEZZA_BAD_PIN = ((-0x2000) + 56),
XP_SEC_FORTEZZA_PERSON_ERROR = ((-0x2000) + 57),
SEC_ERROR_NO_KRL = ((-0x2000) + 58),
SEC_ERROR_KRL_EXPIRED = ((-0x2000) + 59),
SEC_ERROR_KRL_BAD_SIGNATURE = ((-0x2000) + 60),
SEC_ERROR_REVOKED_KEY = ((-0x2000) + 61),
SEC_ERROR_KRL_INVALID = ((-0x2000) + 62),
SEC_ERROR_NEED_RANDOM = ((-0x2000) + 63),
SEC_ERROR_NO_MODULE = ((-0x2000) + 64),
SEC_ERROR_NO_TOKEN = ((-0x2000) + 65),
SEC_ERROR_READ_ONLY = ((-0x2000) + 66),
SEC_ERROR_NO_SLOT_SELECTED = ((-0x2000) + 67),
SEC_ERROR_CERT_NICKNAME_COLLISION = ((-0x2000) + 68),
SEC_ERROR_KEY_NICKNAME_COLLISION = ((-0x2000) + 69),
SEC_ERROR_SAFE_NOT_CREATED = ((-0x2000) + 70),
SEC_ERROR_BAGGAGE_NOT_CREATED = ((-0x2000) + 71),
XP_JAVA_REMOVE_PRINCIPAL_ERROR = ((-0x2000) + 72),
XP_JAVA_DELETE_PRIVILEGE_ERROR = ((-0x2000) + 73),
XP_JAVA_CERT_NOT_EXISTS_ERROR = ((-0x2000) + 74),
SEC_ERROR_BAD_EXPORT_ALGORITHM = ((-0x2000) + 75),
SEC_ERROR_EXPORTING_CERTIFICATES = ((-0x2000) + 76),
SEC_ERROR_IMPORTING_CERTIFICATES = ((-0x2000) + 77),
SEC_ERROR_PKCS12_DECODING_PFX = ((-0x2000) + 78),
SEC_ERROR_PKCS12_INVALID_MAC = ((-0x2000) + 79),
SEC_ERROR_PKCS12_UNSUPPORTED_MAC_ALGORITHM = ((-0x2000) + 80),
SEC_ERROR_PKCS12_UNSUPPORTED_TRANSPORT_MODE = ((-0x2000) + 81),
SEC_ERROR_PKCS12_CORRUPT_PFX_STRUCTURE = ((-0x2000) + 82),
SEC_ERROR_PKCS12_UNSUPPORTED_PBE_ALGORITHM = ((-0x2000) + 83),
SEC_ERROR_PKCS12_UNSUPPORTED_VERSION = ((-0x2000) + 84),
SEC_ERROR_PKCS12_PRIVACY_PASSWORD_INCORRECT = ((-0x2000) + 85),
SEC_ERROR_PKCS12_CERT_COLLISION = ((-0x2000) + 86),
SEC_ERROR_USER_CANCELLED = ((-0x2000) + 87),
SEC_ERROR_PKCS12_DUPLICATE_DATA = ((-0x2000) + 88),
SEC_ERROR_MESSAGE_SEND_ABORTED = ((-0x2000) + 89),
SEC_ERROR_INADEQUATE_KEY_USAGE = ((-0x2000) + 90),
SEC_ERROR_INADEQUATE_CERT_TYPE = ((-0x2000) + 91),
SEC_ERROR_CERT_ADDR_MISMATCH = ((-0x2000) + 92),
SEC_ERROR_PKCS12_UNABLE_TO_IMPORT_KEY = ((-0x2000) + 93),
SEC_ERROR_PKCS12_IMPORTING_CERT_CHAIN = ((-0x2000) + 94),
SEC_ERROR_PKCS12_UNABLE_TO_LOCATE_OBJECT_BY_NAME = ((-0x2000) + 95),
SEC_ERROR_PKCS12_UNABLE_TO_EXPORT_KEY = ((-0x2000) + 96),
SEC_ERROR_PKCS12_UNABLE_TO_WRITE = ((-0x2000) + 97),
SEC_ERROR_PKCS12_UNABLE_TO_READ = ((-0x2000) + 98),
SEC_ERROR_PKCS12_KEY_DATABASE_NOT_INITIALIZED = ((-0x2000) + 99),
SEC_ERROR_KEYGEN_FAIL = ((-0x2000) + 100),
SEC_ERROR_INVALID_PASSWORD = ((-0x2000) + 101),
SEC_ERROR_RETRY_OLD_PASSWORD = ((-0x2000) + 102),
SEC_ERROR_BAD_NICKNAME = ((-0x2000) + 103),
SEC_ERROR_NOT_FORTEZZA_ISSUER = ((-0x2000) + 104),
SEC_ERROR_CANNOT_MOVE_SENSITIVE_KEY = ((-0x2000) + 105),
SEC_ERROR_JS_INVALID_MODULE_NAME = ((-0x2000) + 106),
SEC_ERROR_JS_INVALID_DLL = ((-0x2000) + 107),
SEC_ERROR_JS_ADD_MOD_FAILURE = ((-0x2000) + 108),
SEC_ERROR_JS_DEL_MOD_FAILURE = ((-0x2000) + 109),
SEC_ERROR_OLD_KRL = ((-0x2000) + 110),
SEC_ERROR_CKL_CONFLICT = ((-0x2000) + 111),
SEC_ERROR_CERT_NOT_IN_NAME_SPACE = ((-0x2000) + 112),
SEC_ERROR_KRL_NOT_YET_VALID = ((-0x2000) + 113),
SEC_ERROR_CRL_NOT_YET_VALID = ((-0x2000) + 114),
SEC_ERROR_UNKNOWN_CERT = ((-0x2000) + 115),
SEC_ERROR_UNKNOWN_SIGNER = ((-0x2000) + 116),
SEC_ERROR_CERT_BAD_ACCESS_LOCATION = ((-0x2000) + 117),
SEC_ERROR_OCSP_UNKNOWN_RESPONSE_TYPE = ((-0x2000) + 118),
SEC_ERROR_OCSP_BAD_HTTP_RESPONSE = ((-0x2000) + 119),
SEC_ERROR_OCSP_MALFORMED_REQUEST = ((-0x2000) + 120),
SEC_ERROR_OCSP_SERVER_ERROR = ((-0x2000) + 121),
SEC_ERROR_OCSP_TRY_SERVER_LATER = ((-0x2000) + 122),
SEC_ERROR_OCSP_REQUEST_NEEDS_SIG = ((-0x2000) + 123),
SEC_ERROR_OCSP_UNAUTHORIZED_REQUEST = ((-0x2000) + 124),
SEC_ERROR_OCSP_UNKNOWN_RESPONSE_STATUS = ((-0x2000) + 125),
SEC_ERROR_OCSP_UNKNOWN_CERT = ((-0x2000) + 126),
SEC_ERROR_OCSP_NOT_ENABLED = ((-0x2000) + 127),
SEC_ERROR_OCSP_NO_DEFAULT_RESPONDER = ((-0x2000) + 128),
SEC_ERROR_OCSP_MALFORMED_RESPONSE = ((-0x2000) + 129),
SEC_ERROR_OCSP_UNAUTHORIZED_RESPONSE = ((-0x2000) + 130),
SEC_ERROR_OCSP_FUTURE_RESPONSE = ((-0x2000) + 131),
SEC_ERROR_OCSP_OLD_RESPONSE = ((-0x2000) + 132),
SEC_ERROR_DIGEST_NOT_FOUND = ((-0x2000) + 133),
SEC_ERROR_UNSUPPORTED_MESSAGE_TYPE = ((-0x2000) + 134)
} SECErrorCodes;
# 46 "p12e.c" 2
# 1 "../../../../dist/public/security/pk11func.h" 1
# 38 "../../../../dist/public/security/pk11func.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 39 "../../../../dist/public/security/pk11func.h" 2
# 1 "../../../../dist/public/security/seccomon.h" 1
# 40 "../../../../dist/public/security/pk11func.h" 2
# 1 "../../../../dist/public/security/secoidt.h" 1
# 41 "../../../../dist/public/security/pk11func.h" 2
# 1 "../../../../dist/public/security/secdert.h" 1
# 42 "../../../../dist/public/security/pk11func.h" 2
# 1 "../../../../dist/public/security/keyt.h" 1
# 43 "../../../../dist/public/security/pk11func.h" 2
# 1 "../../../../dist/public/security/certt.h" 1
# 44 "../../../../dist/public/security/pk11func.h" 2
# 1 "../../../../dist/public/security/pkcs11t.h" 1
# 45 "../../../../dist/public/security/pk11func.h" 2
# 1 "../../../../dist/public/security/secmodt.h" 1
# 46 "../../../../dist/public/security/pk11func.h" 2
# 1 "../../../../dist/public/security/seccomon.h" 1
# 47 "../../../../dist/public/security/pk11func.h" 2
# 1 "../../../../dist/public/security/pkcs7t.h" 1
# 48 "../../../../dist/public/security/pk11func.h" 2
# 1 "../../../../dist/public/security/cmsreclist.h" 1
# 41 "../../../../dist/public/security/cmsreclist.h"
struct NSSCMSRecipientStr {
int riIndex;
int subIndex;
enum {RLIssuerSN=0, RLSubjKeyID=1} kind;
union {
CERTIssuerAndSN * issuerAndSN;
SECItem * subjectKeyID;
} id;
CERTCertificate * cert;
SECKEYPrivateKey * privkey;
PK11SlotInfo * slot;
};
typedef struct NSSCMSRecipientStr NSSCMSRecipient;
# 49 "../../../../dist/public/security/pk11func.h" 2
PK11SlotList * PK11_NewSlotList(void);
void PK11_FreeSlotList(PK11SlotList *list);
SECStatus PK11_AddSlotToList(PK11SlotList *list,PK11SlotInfo *slot);
SECStatus PK11_DeleteSlotFromList(PK11SlotList *list,PK11SlotListElement *le);
PK11SlotListElement * PK11_GetFirstSafe(PK11SlotList *list);
PK11SlotListElement *PK11_GetNextSafe(PK11SlotList *list,
PK11SlotListElement *le, PRBool restart);
PK11SlotListElement *PK11_FindSlotElement(PK11SlotList *list,
PK11SlotInfo *slot);
PK11SlotInfo *PK11_ReferenceSlot(PK11SlotInfo *slot);
PK11SlotInfo *PK11_FindSlotByID(SECMODModuleID modID,CK_SLOT_ID slotID);
void PK11_FreeSlot(PK11SlotInfo *slot);
SECStatus PK11_DestroyObject(PK11SlotInfo *slot,CK_OBJECT_HANDLE object);
SECStatus PK11_DestroyTokenObject(PK11SlotInfo *slot,CK_OBJECT_HANDLE object);
CK_OBJECT_HANDLE PK11_CopyKey(PK11SlotInfo *slot, CK_OBJECT_HANDLE srcObject);
SECStatus PK11_ReadAttribute(PK11SlotInfo *slot, CK_OBJECT_HANDLE id,
CK_ATTRIBUTE_TYPE type, PLArenaPool *arena, SECItem *result);
CK_ULONG PK11_ReadULongAttribute(PK11SlotInfo *slot, CK_OBJECT_HANDLE id,
CK_ATTRIBUTE_TYPE type);
PK11SlotInfo *PK11_GetInternalKeySlot(void);
PK11SlotInfo *PK11_GetInternalSlot(void);
char * PK11_MakeString(PLArenaPool *arena,char *space,char *staticSring,
int stringLen);
int PK11_MapError(CK_RV error);
CK_SESSION_HANDLE PK11_GetRWSession(PK11SlotInfo *slot);
void PK11_RestoreROSession(PK11SlotInfo *slot,CK_SESSION_HANDLE rwsession);
PRBool PK11_RWSessionHasLock(PK11SlotInfo *slot,
CK_SESSION_HANDLE session_handle);
PK11SlotInfo *PK11_NewSlotInfo(void);
SECStatus PK11_Logout(PK11SlotInfo *slot);
void PK11_LogoutAll(void);
void PK11_EnterSlotMonitor(PK11SlotInfo *);
void PK11_ExitSlotMonitor(PK11SlotInfo *);
void PK11_CleanKeyList(PK11SlotInfo *slot);
void PK11_SetSlotPWValues(PK11SlotInfo *slot,int askpw, int timeout);
void PK11_GetSlotPWValues(PK11SlotInfo *slot,int *askpw, int *timeout);
SECStatus PK11_CheckSSOPassword(PK11SlotInfo *slot, char *ssopw);
SECStatus PK11_CheckUserPassword(PK11SlotInfo *slot,char *pw);
SECStatus PK11_DoPassword(PK11SlotInfo *slot, PRBool loadCerts, void *wincx);
PRBool PK11_IsLoggedIn(PK11SlotInfo *slot, void *wincx);
SECStatus PK11_VerifyPW(PK11SlotInfo *slot,char *pw);
SECStatus PK11_InitPin(PK11SlotInfo *slot,char *ssopw, char *pk11_userpwd);
SECStatus PK11_ChangePW(PK11SlotInfo *slot,char *oldpw, char *newpw);
void PK11_HandlePasswordCheck(PK11SlotInfo *slot,void *wincx);
void PK11_SetPasswordFunc(PK11PasswordFunc func);
void PK11_SetVerifyPasswordFunc(PK11VerifyPasswordFunc func);
void PK11_SetIsLoggedInFunc(PK11IsLoggedInFunc func);
int PK11_GetMinimumPwdLength(PK11SlotInfo *slot);
SECStatus PK11_ResetToken(PK11SlotInfo *slot, char *sso_pwd);
SECStatus PK11_InitSlotLists(void);
void PK11_DestroySlotLists(void);
PK11SlotList *PK11_GetSlotList(CK_MECHANISM_TYPE type);
void PK11_LoadSlotList(PK11SlotInfo *slot, PK11PreSlotInfo *psi, int count);
void PK11_ClearSlotList(PK11SlotInfo *slot);
PRBool PK11_VerifyMechanism(PK11SlotInfo *slot,PK11SlotInfo *intern,
CK_MECHANISM_TYPE mech, SECItem *data, SECItem *iv);
PRBool PK11_VerifySlotMechanisms(PK11SlotInfo *slot);
SECStatus pk11_CheckVerifyTest(PK11SlotInfo *slot);
SECStatus PK11_InitToken(PK11SlotInfo *slot, PRBool loadCerts);
SECStatus PK11_Authenticate(PK11SlotInfo *slot, PRBool loadCerts, void *wincx);
void PK11_InitSlot(SECMODModule *mod,CK_SLOT_ID slotID,PK11SlotInfo *slot);
PK11SlotInfo *PK11_FindSlotByName(char *name);
PK11SlotInfo *PK11_FindSlotBySerial(char *serial);
PRBool PK11_IsReadOnly(PK11SlotInfo *slot);
PRBool PK11_IsInternal(PK11SlotInfo *slot);
char * PK11_GetTokenName(PK11SlotInfo *slot);
char * PK11_GetSlotName(PK11SlotInfo *slot);
PRBool PK11_NeedLogin(PK11SlotInfo *slot);
PRBool PK11_IsFriendly(PK11SlotInfo *slot);
PRBool PK11_IsHW(PK11SlotInfo *slot);
PRBool PK11_NeedUserInit(PK11SlotInfo *slot);
int PK11_GetSlotSeries(PK11SlotInfo *slot);
int PK11_GetCurrentWrapIndex(PK11SlotInfo *slot);
unsigned long PK11_GetDefaultFlags(PK11SlotInfo *slot);
CK_SLOT_ID PK11_GetSlotID(PK11SlotInfo *slot);
SECMODModuleID PK11_GetModuleID(PK11SlotInfo *slot);
SECStatus PK11_GetSlotInfo(PK11SlotInfo *slot, CK_SLOT_INFO *info);
SECStatus PK11_GetTokenInfo(PK11SlotInfo *slot, CK_TOKEN_INFO *info);
PRBool PK11_IsDisabled(PK11SlotInfo *slot);
PRBool PK11_HasRootCerts(PK11SlotInfo *slot);
PK11DisableReasons PK11_GetDisabledReason(PK11SlotInfo *slot);
PRBool PK11_UserDisableSlot(PK11SlotInfo *slot);
PRBool PK11_UserEnableSlot(PK11SlotInfo *slot);
PRBool PK11_NeedPWInit(void);
PRBool PK11_NeedPWInitForSlot(PK11SlotInfo *slot);
PRBool PK11_TokenExists(CK_MECHANISM_TYPE);
SECStatus PK11_GetModInfo(SECMODModule *mod, CK_INFO *info);
PRBool PK11_IsFIPS(void);
SECMODModule *PK11_GetModule(PK11SlotInfo *slot);
PRBool PK11_IsPresent(PK11SlotInfo *slot);
PRBool PK11_DoesMechanism(PK11SlotInfo *slot, CK_MECHANISM_TYPE type);
PK11SlotList * PK11_GetAllTokens(CK_MECHANISM_TYPE type,PRBool needRW,
PRBool loadCerts, void *wincx);
PK11SlotList * PK11_GetPrivateKeyTokens(CK_MECHANISM_TYPE type,
PRBool needRW,void *wincx);
PK11SlotInfo *PK11_GetBestSlotMultiple(CK_MECHANISM_TYPE *type, int count,
void *wincx);
PK11SlotInfo *PK11_GetBestSlot(CK_MECHANISM_TYPE type, void *wincx);
CK_MECHANISM_TYPE PK11_GetBestWrapMechanism(PK11SlotInfo *slot);
int PK11_GetBestKeyLength(PK11SlotInfo *slot, CK_MECHANISM_TYPE type);
void PK11_AddMechanismEntry(CK_MECHANISM_TYPE type, CK_KEY_TYPE key,
CK_MECHANISM_TYPE keygen, int ivLen, int blocksize);
CK_MECHANISM_TYPE PK11_GetKeyType(CK_MECHANISM_TYPE type,unsigned long len);
CK_MECHANISM_TYPE PK11_GetKeyGen(CK_MECHANISM_TYPE type);
int PK11_GetBlockSize(CK_MECHANISM_TYPE type,SECItem *params);
int PK11_GetIVLength(CK_MECHANISM_TYPE type);
SECItem *PK11_ParamFromIV(CK_MECHANISM_TYPE type,SECItem *iv);
unsigned char *PK11_IVFromParam(CK_MECHANISM_TYPE type,SECItem *param,int *len);
SECItem * PK11_BlockData(SECItem *data,unsigned long size);
SECItem *PK11_ParamFromAlgid(SECAlgorithmID *algid);
SECItem *PK11_GenerateNewParam(CK_MECHANISM_TYPE, PK11SymKey *);
CK_MECHANISM_TYPE PK11_AlgtagToMechanism(SECOidTag algTag);
SECOidTag PK11_MechanismToAlgtag(CK_MECHANISM_TYPE type);
SECOidTag PK11_FortezzaMapSig(SECOidTag algTag);
SECStatus PK11_ParamToAlgid(SECOidTag algtag, SECItem *param,
PLArenaPool *arena, SECAlgorithmID *algid);
SECStatus PK11_SeedRandom(PK11SlotInfo *,unsigned char *data,int len);
SECStatus PK11_RandomUpdate(void *data, size_t bytes);
SECStatus PK11_GenerateRandom(unsigned char *data,int len);
CK_RV PK11_MapPBEMechanismToCryptoMechanism(CK_MECHANISM_PTR pPBEMechanism,
CK_MECHANISM_PTR pCryptoMechanism,
SECItem *pbe_pwd, PRBool bad3DES);
CK_MECHANISM_TYPE PK11_GetPadMechanism(CK_MECHANISM_TYPE);
PK11SymKey *PK11_CreateSymKey(PK11SlotInfo *slot,
CK_MECHANISM_TYPE type, void *wincx);
void PK11_FreeSymKey(PK11SymKey *key);
PK11SymKey *PK11_ReferenceSymKey(PK11SymKey *symKey);
PK11SymKey *PK11_ImportSymKey(PK11SlotInfo *slot, CK_MECHANISM_TYPE type,
PK11Origin origin, CK_ATTRIBUTE_TYPE operation, SECItem *key,void *wincx);
PK11SymKey *PK11_SymKeyFromHandle(PK11SlotInfo *slot, PK11SymKey *parent,
PK11Origin origin, CK_MECHANISM_TYPE type, CK_OBJECT_HANDLE keyID,
PRBool owner, void *wincx);
PK11SymKey *PK11_GetWrapKey(PK11SlotInfo *slot, int wrap,
CK_MECHANISM_TYPE type,int series, void *wincx);
void PK11_SetWrapKey(PK11SlotInfo *slot, int wrap, PK11SymKey *wrapKey);
CK_MECHANISM_TYPE PK11_GetMechanism(PK11SymKey *symKey);
CK_OBJECT_HANDLE PK11_ImportPublicKey(PK11SlotInfo *slot,
SECKEYPublicKey *pubKey, PRBool isToken);
PK11SymKey *PK11_KeyGen(PK11SlotInfo *slot,CK_MECHANISM_TYPE type,
SECItem *param, int keySize,void *wincx);
PK11SymKey *PK11_GenDES3TokenKey(PK11SlotInfo *slot, SECItem *keyid, void *cx);
SECStatus PK11_PubWrapSymKey(CK_MECHANISM_TYPE type, SECKEYPublicKey *pubKey,
PK11SymKey *symKey, SECItem *wrappedKey);
SECStatus PK11_WrapSymKey(CK_MECHANISM_TYPE type, SECItem *params,
PK11SymKey *wrappingKey, PK11SymKey *symKey, SECItem *wrappedKey);
PK11SymKey *PK11_Derive(PK11SymKey *baseKey, CK_MECHANISM_TYPE mechanism,
SECItem *param, CK_MECHANISM_TYPE target,
CK_ATTRIBUTE_TYPE operation, int keySize);
PK11SymKey *PK11_DeriveWithFlags( PK11SymKey *baseKey,
CK_MECHANISM_TYPE derive, SECItem *param, CK_MECHANISM_TYPE target,
CK_ATTRIBUTE_TYPE operation, int keySize, CK_FLAGS flags);
PK11SymKey *PK11_PubDerive( SECKEYPrivateKey *privKey,
SECKEYPublicKey *pubKey, PRBool isSender, SECItem *randomA, SECItem *randomB,
CK_MECHANISM_TYPE derive, CK_MECHANISM_TYPE target,
CK_ATTRIBUTE_TYPE operation, int keySize,void *wincx) ;
PK11SymKey *PK11_UnwrapSymKey(PK11SymKey *key,
CK_MECHANISM_TYPE wraptype, SECItem *param, SECItem *wrapppedKey,
CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation, int keySize);
PK11SymKey *PK11_UnwrapSymKeyWithFlags(PK11SymKey *wrappingKey,
CK_MECHANISM_TYPE wrapType, SECItem *param, SECItem *wrappedKey,
CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation, int keySize,
CK_FLAGS flags);
PK11SymKey *PK11_PubUnwrapSymKey(SECKEYPrivateKey *key, SECItem *wrapppedKey,
CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation, int keySize);
PK11SymKey *PK11_FindFixedKey(PK11SlotInfo *slot, CK_MECHANISM_TYPE type,
SECItem *keyID, void *wincx);
SECStatus PK11_DeleteTokenPrivateKey(SECKEYPrivateKey *privKey);
SECStatus PK11_DeleteTokenCertAndKey(CERTCertificate *cert,void *wincx);
unsigned int PK11_GetKeyLength(PK11SymKey *key);
unsigned int PK11_GetKeyStrength(PK11SymKey *key,SECAlgorithmID *algid);
SECStatus PK11_ExtractKeyValue(PK11SymKey *symKey);
SECItem * __PK11_GetKeyData(PK11SymKey *symKey);
PK11SlotInfo * PK11_GetSlotFromKey(PK11SymKey *symKey);
void *PK11_GetWindow(PK11SymKey *symKey);
SECKEYPrivateKey *PK11_GenerateKeyPair(PK11SlotInfo *slot,
CK_MECHANISM_TYPE type, void *param, SECKEYPublicKey **pubk,
PRBool isPerm, PRBool isSensitive, void *wincx);
SECKEYPrivateKey *PK11_MakePrivKey(PK11SlotInfo *slot, KeyType keyType,
PRBool isTemp, CK_OBJECT_HANDLE privID, void *wincx);
SECKEYPrivateKey * PK11_FindPrivateKeyFromCert(PK11SlotInfo *slot,
CERTCertificate *cert, void *wincx);
SECKEYPrivateKey * PK11_FindKeyByAnyCert(CERTCertificate *cert, void *wincx);
SECKEYPrivateKey * PK11_FindKeyByKeyID(PK11SlotInfo *slot, SECItem *keyID,
void *wincx);
CK_OBJECT_HANDLE PK11_FindObjectForCert(CERTCertificate *cert,
void *wincx, PK11SlotInfo **pSlot);
int PK11_GetPrivateModulusLen(SECKEYPrivateKey *key);
SECStatus PK11_PubDecryptRaw(SECKEYPrivateKey *key, unsigned char *data,
unsigned *outLen, unsigned int maxLen, unsigned char *enc, unsigned encLen);
SECStatus PK11_PubEncryptRaw(SECKEYPublicKey *key, unsigned char *enc,
unsigned char *data, unsigned dataLen, void *wincx);
SECStatus PK11_ImportPrivateKeyInfo(PK11SlotInfo *slot,
SECKEYPrivateKeyInfo *pki, SECItem *nickname,
SECItem *publicValue, PRBool isPerm, PRBool isPrivate,
unsigned int usage, void *wincx);
SECStatus PK11_ImportDERPrivateKeyInfo(PK11SlotInfo *slot,
SECItem *derPKI, SECItem *nickname,
SECItem *publicValue, PRBool isPerm, PRBool isPrivate,
unsigned int usage, void *wincx);
SECStatus PK11_ImportEncryptedPrivateKeyInfo(PK11SlotInfo *slot,
SECKEYEncryptedPrivateKeyInfo *epki, SECItem *pwitem,
SECItem *nickname, SECItem *publicValue, PRBool isPerm,
PRBool isPrivate, KeyType type,
unsigned int usage, void *wincx);
SECKEYPrivateKeyInfo *PK11_ExportPrivateKeyInfo(
CERTCertificate *cert, void *wincx);
SECKEYEncryptedPrivateKeyInfo *PK11_ExportEncryptedPrivateKeyInfo(
PK11SlotInfo *slot, SECOidTag algTag, SECItem *pwitem,
CERTCertificate *cert, int iteration, void *wincx);
SECKEYPrivateKey *PK11_FindKeyByDERCert(PK11SlotInfo *slot,
CERTCertificate *cert, void *wincx);
SECKEYPublicKey *PK11_MakeKEAPubKey(unsigned char *data, int length);
SECStatus PK11_DigestKey(PK11Context *context, PK11SymKey *key);
PRBool PK11_VerifyKeyOK(PK11SymKey *key);
SECKEYPrivateKey *PK11_UnwrapPrivKey(PK11SlotInfo *slot,
PK11SymKey *wrappingKey, CK_MECHANISM_TYPE wrapType,
SECItem *param, SECItem *wrappedKey, SECItem *label,
SECItem *publicValue, PRBool token, PRBool sensitive,
CK_KEY_TYPE keyType, CK_ATTRIBUTE_TYPE *usage, int usageCount,
void *wincx);
SECStatus PK11_WrapPrivKey(PK11SlotInfo *slot, PK11SymKey *wrappingKey,
SECKEYPrivateKey *privKey, CK_MECHANISM_TYPE wrapType,
SECItem *param, SECItem *wrappedKey, void *wincx);
PK11SymKey * pk11_CopyToSlot(PK11SlotInfo *slot,CK_MECHANISM_TYPE type,
CK_ATTRIBUTE_TYPE operation, PK11SymKey *symKey);
SECItem *PK11_GetKeyIDFromCert(CERTCertificate *cert, void *wincx);
SECItem * PK11_GetKeyIDFromPrivateKey(SECKEYPrivateKey *key, void *wincx);
SECItem* PK11_DEREncodePublicKey(SECKEYPublicKey *pubk);
PK11SymKey* PK11_CopySymKeyForSigning(PK11SymKey *originalKey,
CK_MECHANISM_TYPE mech);
SECKEYPrivateKeyList* PK11_ListPrivateKeysInSlot(PK11SlotInfo *slot);
SECItem *PK11_MakeIDFromPubKey(SECItem *pubKeyData);
CERTCertificate *PK11_GetCertFromPrivateKey(SECKEYPrivateKey *privKey);
SECStatus PK11_TraverseSlotCerts(
SECStatus(* callback)(CERTCertificate*,SECItem *,void *),
void *arg, void *wincx);
SECStatus PK11_TraversePrivateKeysInSlot( PK11SlotInfo *slot,
SECStatus(* callback)(SECKEYPrivateKey*, void*), void *arg);
CERTCertificate * PK11_FindCertFromNickname(char *nickname, void *wincx);
CERTCertList * PK11_FindCertsFromNickname(char *nickname, void *wincx);
SECKEYPrivateKey * PK11_FindPrivateKeyFromNickname(char *nickname, void *wincx);
PK11SlotInfo *PK11_ImportCertForKey(CERTCertificate *cert, char *nickname,
void *wincx);
PK11SlotInfo *PK11_ImportDERCertForKey(SECItem *derCert, char *nickname,
void *wincx);
CK_OBJECT_HANDLE * PK11_FindObjectsFromNickname(char *nickname,
PK11SlotInfo **slotptr, CK_OBJECT_CLASS objclass, int *returnCount,
void *wincx);
PK11SlotInfo *PK11_KeyForCertExists(CERTCertificate *cert,
CK_OBJECT_HANDLE *keyPtr, void *wincx);
PK11SlotInfo *PK11_KeyForDERCertExists(SECItem *derCert,
CK_OBJECT_HANDLE *keyPtr, void *wincx);
CK_OBJECT_HANDLE PK11_MatchItem(PK11SlotInfo *slot,CK_OBJECT_HANDLE peer,
CK_OBJECT_CLASS o_class);
CERTCertificate * PK11_FindCertByIssuerAndSN(PK11SlotInfo **slot,
CERTIssuerAndSN *sn, void *wincx);
CERTCertificate * PK11_FindCertAndKeyByRecipientList(PK11SlotInfo **slot,
SEC_PKCS7RecipientInfo **array, SEC_PKCS7RecipientInfo **rip,
SECKEYPrivateKey**privKey, void *wincx);
int PK11_FindCertAndKeyByRecipientListNew(NSSCMSRecipient **recipientlist,
void *wincx);
CK_BBOOL PK11_HasAttributeSet( PK11SlotInfo *slot,
CK_OBJECT_HANDLE id,
CK_ATTRIBUTE_TYPE type );
CK_RV PK11_GetAttributes(PLArenaPool *arena,PK11SlotInfo *slot,
CK_OBJECT_HANDLE obj,CK_ATTRIBUTE *attr, int count);
int PK11_NumberCertsForCertSubject(CERTCertificate *cert);
SECStatus PK11_TraverseCertsForSubject(CERTCertificate *cert,
SECStatus(*callback)(CERTCertificate *, void *), void *arg);
SECStatus PK11_TraverseCertsForSubjectInSlot(CERTCertificate *cert,
PK11SlotInfo *slot, SECStatus(*callback)(CERTCertificate *, void *),
void *arg);
CERTCertificate *PK11_FindCertFromDERCert(PK11SlotInfo *slot,
CERTCertificate *cert, void *wincx);
CERTCertificate *PK11_FindCertFromDERSubjectAndNickname(
PK11SlotInfo *slot,
CERTCertificate *cert, char *nickname,
void *wincx);
SECStatus PK11_ImportCertForKeyToSlot(PK11SlotInfo *slot, CERTCertificate *cert,
char *nickname, PRBool addUsage,
void *wincx);
CERTCertificate *PK11_FindBestKEAMatch(CERTCertificate *serverCert,void *wincx);
SECStatus PK11_GetKEAMatchedCerts(PK11SlotInfo *slot1,
PK11SlotInfo *slot2, CERTCertificate **cert1, CERTCertificate **cert2);
PRBool PK11_FortezzaHasKEA(CERTCertificate *cert);
CK_OBJECT_HANDLE PK11_FindCertInSlot(PK11SlotInfo *slot, CERTCertificate *cert,
void *wincx);
SECStatus PK11_TraverseCertsForNicknameInSlot(SECItem *nickname,
PK11SlotInfo *slot, SECStatus(*callback)(CERTCertificate *, void *),
void *arg);
SECStatus PK11_TraverseCertsInSlot(PK11SlotInfo *slot,
SECStatus(* callback)(CERTCertificate*, void *), void *arg);
CERTCertList *
PK11_ListCerts(PK11CertListType type, void *pwarg);
CERTCertList *
PK11_ListCertsInSlot(PK11SlotInfo *slot);
int PK11_SignatureLen(SECKEYPrivateKey *key);
PK11SlotInfo * PK11_GetSlotFromPrivateKey(SECKEYPrivateKey *key);
SECStatus PK11_Sign(SECKEYPrivateKey *key, SECItem *sig, SECItem *hash);
SECStatus PK11_VerifyRecover(SECKEYPublicKey *key, SECItem *sig,
SECItem *dsig, void * wincx);
SECStatus PK11_Verify(SECKEYPublicKey *key, SECItem *sig,
SECItem *hash, void *wincx);
void PK11_DestroyContext(PK11Context *context, PRBool freeit);
PK11Context * __PK11_CreateContextByRawKey(PK11SlotInfo *slot,
CK_MECHANISM_TYPE type, PK11Origin origin, CK_ATTRIBUTE_TYPE operation,
SECItem *key, SECItem *param, void *wincx);
PK11Context *PK11_CreateContextBySymKey(CK_MECHANISM_TYPE type,
CK_ATTRIBUTE_TYPE operation, PK11SymKey *symKey, SECItem *param);
PK11Context *PK11_CreateDigestContext(SECOidTag hashAlg);
PK11Context *PK11_CloneContext(PK11Context *old);
SECStatus PK11_DigestBegin(PK11Context *cx);
SECStatus PK11_HashBuf(SECOidTag hashAlg, unsigned char *out, unsigned char *in,
int32 len);
SECStatus PK11_DigestOp(PK11Context *context, const unsigned char *in,
unsigned len);
SECStatus PK11_CipherOp(PK11Context *context, unsigned char * out, int *outlen,
int maxout, unsigned char *in, int inlen);
SECStatus PK11_Finalize(PK11Context *context);
SECStatus PK11_DigestFinal(PK11Context *context, unsigned char *data,
unsigned int *outLen, unsigned int length);
PRBool PK11_HashOK(SECOidTag hashAlg);
SECStatus PK11_SaveContext(PK11Context *cx,unsigned char *save,
int *len, int saveLength);
SECStatus PK11_RestoreContext(PK11Context *cx,unsigned char *save,int len);
SECStatus PK11_GenerateFortezzaIV(PK11SymKey *symKey,unsigned char *iv,int len);
SECStatus PK11_ReadSlotCerts(PK11SlotInfo *slot);
void PK11_FreeSlotCerts(PK11SlotInfo *slot);
void PK11_SetFortezzaHack(PK11SymKey *symKey) ;
# 463 "../../../../dist/public/security/pk11func.h"
SECItem *
PK11_CreatePBEParams(SECItem *salt, SECItem *pwd, unsigned int iterations);
void PK11_DestroyPBEParams(SECItem *params);
SECAlgorithmID *
PK11_CreatePBEAlgorithmID(SECOidTag algorithm, int iteration, SECItem *salt);
PK11SymKey *
PK11_PBEKeyGen(PK11SlotInfo *slot, SECAlgorithmID *algid, SECItem *pwitem,
PRBool faulty3DES, void *wincx);
SECItem *
PK11_GetPBEIV(SECAlgorithmID *algid, SECItem *pwitem);
SECItem *
PK11GetLowLevelKeyIDForCert(PK11SlotInfo *slot,
CERTCertificate *cert, void *pwarg);
SECItem *
PK11GetLowLevelKeyIDForPrivateKey(SECKEYPrivateKey *key);
# 47 "p12e.c" 2
# 1 "p12plcy.h" 1
# 36 "p12plcy.h"
# 1 "../../../../dist/public/security/secoid.h" 1
# 37 "p12plcy.h" 2
# 1 "../../../../dist/public/security/ciferfam.h" 1
# 38 "p12plcy.h" 2
extern PRBool SEC_PKCS12DecryptionAllowed(SECAlgorithmID *algid);
extern PRBool SEC_PKCS12IsEncryptionAllowed(void);
extern SECOidTag SEC_PKCS12GetPreferredEncryptionAlgorithm(void);
extern SECOidTag SEC_PKCS12GetStrongestAllowedAlgorithm(void);
extern SECStatus SEC_PKCS12EnableCipher(long which, int on);
extern SECStatus SEC_PKCS12SetPreferredCipher(long which, int on);
# 48 "p12e.c" 2
# 1 "p12local.h" 1
# 38 "p12local.h"
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 39 "p12local.h" 2
# 1 "../../../../dist/public/security/secoidt.h" 1
# 40 "p12local.h" 2
# 1 "../../../../dist/public/security/secasn1.h" 1
# 41 "p12local.h" 2
# 1 "../../../../dist/public/security/secder.h" 1
# 44 "../../../../dist/public/security/secder.h"
# 1 "/usr/include/time.h" 1 3
# 28 "/usr/include/time.h" 3
# 1 "/usr/include/features.h" 1 3
# 29 "/usr/include/time.h" 2 3
# 38 "/usr/include/time.h" 3
# 1 "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.0.1/include/stddef.h" 1 3
# 39 "/usr/include/time.h" 2 3
# 1 "/usr/include/bits/time.h" 1 3
# 43 "/usr/include/time.h" 2 3
# 95 "/usr/include/time.h" 3
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
long int tm_gmtoff;
__const char *tm_zone;
};
extern clock_t clock (void) ;
extern time_t time (time_t *__timer) ;
extern double difftime (time_t __time1, time_t __time0)
__attribute__ ((__const__));
extern time_t mktime (struct tm *__tp) ;
extern size_t strftime (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp) ;
extern char *strptime (__const char *__s, __const char *__fmt, struct tm *__tp) ;
extern struct tm *gmtime (__const time_t *__timer) ;
extern struct tm *localtime (__const time_t *__timer) ;
extern struct tm *__gmtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) ;
extern struct tm *gmtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) ;
extern struct tm *localtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) ;
extern char *asctime (__const struct tm *__tp) ;
extern char *ctime (__const time_t *__timer) ;
extern char *asctime_r (__const struct tm *__restrict __tp, char *__restrict __buf) ;
extern char *ctime_r (__const time_t *__restrict __timer, char *__restrict __buf) ;
extern char *__tzname[2];
extern int __daylight;
extern long int __timezone;
extern char *tzname[2];
extern void tzset (void) ;
extern int daylight;
extern long int timezone;
# 228 "/usr/include/time.h" 3
extern time_t timegm (struct tm *__tp) ;
extern time_t timelocal (struct tm *__tp) ;
extern int dysize (int __year) ;
# 45 "../../../../dist/public/security/secder.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 46 "../../../../dist/public/security/secder.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prlong.h" 1
# 47 "../../../../dist/public/security/secder.h" 2
# 1 "../../../../dist/public/security/seccomon.h" 1
# 49 "../../../../dist/public/security/secder.h" 2
# 1 "../../../../dist/public/security/secdert.h" 1
# 50 "../../../../dist/public/security/secder.h" 2
# 69 "../../../../dist/public/security/secder.h"
extern SECStatus DER_Decode(PLArenaPool *arena, void *dest, DERTemplate *t,
SECItem *src);
# 80 "../../../../dist/public/security/secder.h"
extern SECStatus DER_Encode(PLArenaPool *arena, SECItem *dest, DERTemplate *t,
void *src);
extern SECStatus DER_Lengths(SECItem *item, int *header_len_p, uint32 *contents_len_p);
# 94 "../../../../dist/public/security/secder.h"
extern unsigned char *DER_StoreHeader(unsigned char *to, unsigned int code,
uint32 encodingLen);
extern int DER_LengthLength(uint32 len);
extern SECStatus DER_SetInteger(PLArenaPool *arena, SECItem *dst, int32 src);
extern SECStatus DER_SetUInteger(PLArenaPool *arena, SECItem *dst, uint32 src);
extern long DER_GetInteger(SECItem *src);
extern unsigned long DER_GetUInteger(SECItem *src);
# 135 "../../../../dist/public/security/secder.h"
extern SECStatus DER_TimeToUTCTime(SECItem *result, int64 time);
extern SECStatus DER_AsciiToTime(int64 *result, char *string);
extern SECStatus DER_UTCTimeToTime(int64 *result, SECItem *time);
extern char *DER_UTCTimeToAscii(SECItem *utcTime);
extern char *DER_UTCDayToAscii(SECItem *utctime);
extern SECStatus DER_TimeToGeneralizedTime(SECItem *dst, int64 gmttime);
extern SECStatus DER_GeneralizedTimeToTime(int64 *dst, SECItem *time);
extern char *CERT_UTCTime2FormattedAscii (int64 utcTime, char *format);
extern char *CERT_GenTime2FormattedAscii (int64 genTime, char *format);
# 42 "p12local.h" 2
# 1 "../../../../dist/public/security/certt.h" 1
# 43 "p12local.h" 2
# 1 "../../../../dist/public/security/secpkcs7.h" 1
# 44 "p12local.h" 2
# 1 "pkcs12.h" 1
# 38 "pkcs12.h"
# 1 "pkcs12t.h" 1
# 37 "pkcs12t.h"
# 1 "../../../../dist/public/security/seccomon.h" 1
# 38 "pkcs12t.h" 2
# 1 "../../../../dist/public/security/secoid.h" 1
# 39 "pkcs12t.h" 2
# 1 "../../../../dist/public/security/cert.h" 1
# 40 "pkcs12t.h" 2
# 1 "../../../../dist/public/security/key.h" 1
# 41 "pkcs12t.h" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/plarena.h" 1
# 42 "pkcs12t.h" 2
# 1 "../../../../dist/public/security/secpkcs7.h" 1
# 43 "pkcs12t.h" 2
# 1 "../../../../dist/public/security/secdig.h" 1
# 44 "pkcs12t.h" 2
typedef struct SEC_PKCS12PFXItemStr SEC_PKCS12PFXItem;
typedef struct SEC_PKCS12MacDataStr SEC_PKCS12MacData;
typedef struct SEC_PKCS12AuthenticatedSafeStr SEC_PKCS12AuthenticatedSafe;
typedef struct SEC_PKCS12BaggageItemStr SEC_PKCS12BaggageItem;
typedef struct SEC_PKCS12BaggageStr SEC_PKCS12Baggage;
typedef struct SEC_PKCS12Baggage_OLDStr SEC_PKCS12Baggage_OLD;
typedef struct SEC_PKCS12ESPVKItemStr SEC_PKCS12ESPVKItem;
typedef struct SEC_PKCS12PVKSupportingDataStr SEC_PKCS12PVKSupportingData;
typedef struct SEC_PKCS12PVKAdditionalDataStr SEC_PKCS12PVKAdditionalData;
typedef struct SEC_PKCS12SafeContentsStr SEC_PKCS12SafeContents;
typedef struct SEC_PKCS12SafeBagStr SEC_PKCS12SafeBag;
typedef struct SEC_PKCS12PrivateKeyStr SEC_PKCS12PrivateKey;
typedef struct SEC_PKCS12PrivateKeyBagStr SEC_PKCS12PrivateKeyBag;
typedef struct SEC_PKCS12CertAndCRLBagStr SEC_PKCS12CertAndCRLBag;
typedef struct SEC_PKCS12CertAndCRLStr SEC_PKCS12CertAndCRL;
typedef struct SEC_PKCS12X509CertCRLStr SEC_PKCS12X509CertCRL;
typedef struct SEC_PKCS12SDSICertStr SEC_PKCS12SDSICert;
typedef struct SEC_PKCS12SecretStr SEC_PKCS12Secret;
typedef struct SEC_PKCS12SecretAdditionalStr SEC_PKCS12SecretAdditional;
typedef struct SEC_PKCS12SecretItemStr SEC_PKCS12SecretItem;
typedef struct SEC_PKCS12SecretBagStr SEC_PKCS12SecretBag;
typedef SECItem *(* SEC_PKCS12PasswordFunc)(SECItem *args);
struct SEC_PKCS12BaggageStr
{
PLArenaPool *poolp;
SEC_PKCS12BaggageItem **bags;
int luggage_size;
};
struct SEC_PKCS12PVKAdditionalDataStr
{
PLArenaPool *poolp;
SECOidData *pvkAdditionalTypeTag;
SECItem pvkAdditionalType;
SECItem pvkAdditionalContent;
};
struct SEC_PKCS12PVKSupportingDataStr
{
PLArenaPool *poolp;
SGNDigestInfo **assocCerts;
SECItem regenerable;
SECItem nickname;
SEC_PKCS12PVKAdditionalData pvkAdditional;
SECItem pvkAdditionalDER;
SECItem uniNickName;
int nThumbs;
};
struct SEC_PKCS12ESPVKItemStr
{
PLArenaPool *poolp;
SECOidData *espvkTag;
SECItem espvkOID;
SEC_PKCS12PVKSupportingData espvkData;
union
{
SECKEYEncryptedPrivateKeyInfo *pkcs8KeyShroud;
} espvkCipherText;
PRBool duplicate;
PRBool problem_cert;
PRBool single_cert;
int nCerts;
SECItem derCert;
};
struct SEC_PKCS12SafeBagStr
{
PLArenaPool *poolp;
SECOidData *safeBagTypeTag;
SECItem safeBagType;
union
{
SEC_PKCS12PrivateKeyBag *keyBag;
SEC_PKCS12CertAndCRLBag *certAndCRLBag;
SEC_PKCS12SecretBag *secretBag;
} safeContent;
SECItem derSafeContent;
SECItem safeBagName;
SECItem uniSafeBagName;
};
struct SEC_PKCS12SafeContentsStr
{
PLArenaPool *poolp;
SEC_PKCS12SafeBag **contents;
int safe_size;
PRBool old;
PRBool swapUnicode;
PRBool possibleSwapUnicode;
};
struct SEC_PKCS12PrivateKeyStr
{
PLArenaPool *poolp;
SEC_PKCS12PVKSupportingData pvkData;
SECKEYPrivateKeyInfo pkcs8data;
PRBool duplicate;
PRBool problem_cert;
PRBool single_cert;
int nCerts;
SECItem derCert;
};
struct SEC_PKCS12PrivateKeyBagStr
{
PLArenaPool *poolp;
SEC_PKCS12PrivateKey **privateKeys;
int bag_size;
};
struct SEC_PKCS12CertAndCRLStr
{
PLArenaPool *poolp;
SECOidData *BagTypeTag;
SECItem BagID;
union
{
SEC_PKCS12X509CertCRL *x509;
SEC_PKCS12SDSICert *sdsi;
} value;
SECItem derValue;
SECItem nickname;
PRBool duplicate;
};
struct SEC_PKCS12X509CertCRLStr
{
PLArenaPool *poolp;
SEC_PKCS7ContentInfo certOrCRL;
SGNDigestInfo thumbprint;
SECItem *derLeafCert;
};
struct SEC_PKCS12SDSICertStr
{
PLArenaPool *poolp;
SECItem value;
SGNDigestInfo thumbprint;
};
struct SEC_PKCS12CertAndCRLBagStr
{
PLArenaPool *poolp;
SEC_PKCS12CertAndCRL **certAndCRLs;
int bag_size;
};
struct SEC_PKCS12SecretAdditionalStr
{
PLArenaPool *poolp;
SECOidData *secretTypeTag;
SECItem secretAdditionalType;
SECItem secretAdditionalContent;
};
struct SEC_PKCS12SecretStr
{
PLArenaPool *poolp;
SECItem secretName;
SECItem value;
SEC_PKCS12SecretAdditional secretAdditional;
SECItem uniSecretName;
};
struct SEC_PKCS12SecretItemStr
{
PLArenaPool *poolp;
SEC_PKCS12Secret secret;
SEC_PKCS12SafeBag subFolder;
};
struct SEC_PKCS12SecretBagStr
{
PLArenaPool *poolp;
SEC_PKCS12SecretItem **secrets;
int bag_size;
};
struct SEC_PKCS12MacDataStr
{
SGNDigestInfo safeMac;
SECItem macSalt;
};
struct SEC_PKCS12PFXItemStr
{
PLArenaPool *poolp;
SEC_PKCS12MacData macData;
SEC_PKCS7ContentInfo authSafe;
PRBool old;
SGNDigestInfo old_safeMac;
SECItem old_macSalt;
PRBool swapUnicode;
};
struct SEC_PKCS12BaggageItemStr {
PLArenaPool *poolp;
SEC_PKCS12ESPVKItem **espvks;
SEC_PKCS12SafeBag **unencSecrets;
int nEspvks;
int nSecrets;
};
struct SEC_PKCS12Baggage_OLDStr
{
PLArenaPool *poolp;
SEC_PKCS12ESPVKItem **espvks;
int luggage_size;
};
struct SEC_PKCS12AuthenticatedSafeStr
{
PLArenaPool *poolp;
SECItem version;
SECOidData *transportTypeTag;
SECItem transportMode;
SECItem privacySalt;
SEC_PKCS12Baggage baggage;
SEC_PKCS7ContentInfo *safe;
PRBool old;
PRBool emptySafe;
SEC_PKCS12Baggage_OLD old_baggage;
SEC_PKCS7ContentInfo old_safe;
PRBool swapUnicode;
};
extern const SEC_ASN1Template SEC_PKCS12PFXItemTemplate_OLD[];
extern const SEC_ASN1Template SEC_PKCS12AuthenticatedSafeTemplate_OLD[];
extern const SEC_ASN1Template SEC_PKCS12BaggageTemplate_OLD[];
extern const SEC_ASN1Template SEC_PKCS12PFXItemTemplate[];
extern const SEC_ASN1Template SEC_PKCS12MacDataTemplate[];
extern const SEC_ASN1Template SEC_PKCS12AuthenticatedSafeTemplate[];
extern const SEC_ASN1Template SEC_PKCS12BaggageTemplate[];
extern const SEC_ASN1Template SEC_PKCS12ESPVKItemTemplate[];
extern const SEC_ASN1Template SEC_PKCS12PVKSupportingDataTemplate[];
extern const SEC_ASN1Template SEC_PKCS12PVKAdditionalTemplate[];
extern const SEC_ASN1Template SEC_PKCS12SafeContentsTemplate_OLD[];
extern const SEC_ASN1Template SEC_PKCS12SafeContentsTemplate[];
extern const SEC_ASN1Template SEC_PKCS12SafeBagTemplate[];
extern const SEC_ASN1Template SEC_PKCS12PrivateKeyTemplate[];
extern const SEC_ASN1Template SEC_PKCS12PrivateKeyBagTemplate[];
extern const SEC_ASN1Template SEC_PKCS12CertAndCRLTemplate[];
extern const SEC_ASN1Template SEC_PKCS12CertAndCRLBagTemplate[];
extern const SEC_ASN1Template SEC_PKCS12X509CertCRLTemplate_OLD[];
extern const SEC_ASN1Template SEC_PKCS12X509CertCRLTemplate[];
extern const SEC_ASN1Template SEC_PKCS12SDSICertTemplate[];
extern const SEC_ASN1Template SEC_PKCS12SecretBagTemplate[];
extern const SEC_ASN1Template SEC_PKCS12SecretTemplate[];
extern const SEC_ASN1Template SEC_PKCS12SecretItemTemplate[];
extern const SEC_ASN1Template SEC_PKCS12SecretAdditionalTemplate[];
extern const SEC_ASN1Template SGN_DigestInfoTemplate[];
extern const SEC_ASN1Template SEC_PointerToPKCS12KeyBagTemplate[];
extern const SEC_ASN1Template SEC_PointerToPKCS12CertAndCRLBagTemplate[];
extern const SEC_ASN1Template SEC_PointerToPKCS12CertAndCRLBagTemplate_OLD[];
extern const SEC_ASN1Template SEC_PointerToPKCS12SecretBagTemplate[];
extern const SEC_ASN1Template SEC_PointerToPKCS12X509CertCRLTemplate_OLD[];
extern const SEC_ASN1Template SEC_PointerToPKCS12X509CertCRLTemplate[];
extern const SEC_ASN1Template SEC_PointerToPKCS12SDSICertTemplate[];
extern const SEC_ASN1Template SEC_PKCS12CodedSafeBagTemplate[];
extern const SEC_ASN1Template SEC_PKCS12CodedCertBagTemplate[];
extern const SEC_ASN1Template SEC_PKCS12CodedCertAndCRLBagTemplate[];
extern const SEC_ASN1Template SEC_PKCS12PVKSupportingDataTemplate_OLD[];
extern const SEC_ASN1Template SEC_PKCS12ESPVKItemTemplate_OLD[];
# 39 "pkcs12.h" 2
# 1 "p12.h" 1
# 40 "pkcs12.h" 2
typedef SECItem * (* SEC_PKCS12GetPassword)(void *arg);
# 57 "pkcs12.h"
SECStatus
SEC_PKCS12PutPFX(SECItem *der_pfx, SECItem *pwitem,
SEC_PKCS12NicknameCollisionCallback ncCall,
PK11SlotInfo *slot, void *wincx);
PRBool SEC_PKCS12ValidData(char *buf, int bufLen, long int totalLength);
# 45 "p12local.h" 2
# 1 "p12.h" 1
# 46 "p12local.h" 2
extern const SEC_ASN1Template *
sec_pkcs12_choose_bag_type(void *src_or_dest, PRBool encoding);
extern const SEC_ASN1Template *
sec_pkcs12_choose_cert_crl_type(void *src_or_dest, PRBool encoding);
extern const SEC_ASN1Template *
sec_pkcs12_choose_shroud_type(void *src_or_dest, PRBool encoding);
extern SECItem *sec_pkcs12_generate_salt(void);
extern SECItem *sec_pkcs12_generate_key_from_password(SECOidTag algorithm,
SECItem *salt, SECItem *password);
extern SECItem *sec_pkcs12_generate_mac(SECItem *key, SECItem *msg,
PRBool old_method);
extern SGNDigestInfo *sec_pkcs12_compute_thumbprint(SECItem *der_cert);
extern SECItem *sec_pkcs12_create_virtual_password(SECItem *password,
SECItem *salt, PRBool swapUnicodeBytes);
extern SECStatus sec_pkcs12_append_shrouded_key(SEC_PKCS12BaggageItem *bag,
SEC_PKCS12ESPVKItem *espvk);
extern void *sec_pkcs12_find_object(SEC_PKCS12SafeContents *safe,
SEC_PKCS12Baggage *baggage, SECOidTag objType,
SECItem *nickname, SGNDigestInfo *thumbprint);
extern PRBool sec_pkcs12_convert_item_to_unicode(PLArenaPool *arena, SECItem *dest,
SECItem *src, PRBool zeroTerm,
PRBool asciiConvert, PRBool toUnicode);
extern CK_MECHANISM_TYPE sec_pkcs12_algtag_to_mech(SECOidTag algtag);
extern SEC_PKCS12PFXItem *sec_pkcs12_new_pfx(void);
extern SEC_PKCS12SafeContents *sec_pkcs12_create_safe_contents(
PLArenaPool *poolp);
extern SEC_PKCS12Baggage *sec_pkcs12_create_baggage(PLArenaPool *poolp);
extern SEC_PKCS12BaggageItem *sec_pkcs12_create_external_bag(SEC_PKCS12Baggage *luggage);
extern void SEC_PKCS12DestroyPFX(SEC_PKCS12PFXItem *pfx);
extern SEC_PKCS12AuthenticatedSafe *sec_pkcs12_new_asafe(PLArenaPool *poolp);
extern SEC_PKCS12DecoderContext *
sec_PKCS12ConvertOldSafeToNew(PLArenaPool *arena, PK11SlotInfo *slot,
PRBool swapUnicode, SECItem *pwitem,
void *wincx, SEC_PKCS12SafeContents *safe,
SEC_PKCS12Baggage *baggage);
# 49 "p12e.c" 2
# 1 "../../../../dist/private/security/alghmac.h" 1
# 37 "../../../../dist/private/security/alghmac.h"
# 1 "../../../../dist/public/security/secoid.h" 1
# 38 "../../../../dist/private/security/alghmac.h" 2
typedef struct HMACContextStr HMACContext;
extern void
HMAC_Destroy(HMACContext *cx);
# 55 "../../../../dist/private/security/alghmac.h"
extern HMACContext *
HMAC_Create(SECOidTag hash_alg, const unsigned char *secret,
unsigned int secret_len);
extern void
HMAC_Begin(HMACContext *cx);
extern void
HMAC_Update(HMACContext *cx, const unsigned char *data, unsigned int data_len);
extern SECStatus
HMAC_Finish(HMACContext *cx, unsigned char *result, unsigned int *result_len,
unsigned int max_result_len);
extern HMACContext *
HMAC_Clone(HMACContext *cx);
# 50 "p12e.c" 2
# 1 "/home/nisse/hack/mozilla/dist/include/nspr/prcpucfg.h" 1
# 51 "p12e.c" 2
# 60 "p12e.c"
struct SEC_PKCS12SafeInfoStr {
PLArenaPool *arena;
SECItem pwitem;
SECOidTag algorithm;
PK11SymKey *encryptionKey;
unsigned int itemCount;
SEC_PKCS7ContentInfo *cinfo;
sec_PKCS12SafeContents *safe;
};
struct SEC_PKCS12ExportContextStr {
PLArenaPool *arena;
PK11SlotInfo *slot;
void *wincx;
PRBool integrityEnabled;
PRBool pwdIntegrity;
union {
struct sec_PKCS12PasswordModeInfo pwdInfo;
struct sec_PKCS12PublicKeyModeInfo pubkeyInfo;
} integrityInfo;
SECKEYGetPasswordKey pwfn;
void *pwfnarg;
SEC_PKCS12SafeInfo **safeInfos;
unsigned int safeInfoCount;
sec_PKCS12AuthenticatedSafe authSafe;
CERTCertificate **certList;
};
struct sec_pkcs12_encoder_output {
SEC_PKCS12EncoderOutputCallback outputfn;
void *outputarg;
};
struct sec_pkcs12_hmac_and_output_info {
void *arg;
struct sec_pkcs12_encoder_output output;
};
typedef struct sec_PKCS12EncoderContextStr {
PLArenaPool *arena;
SEC_PKCS12ExportContext *p12exp;
PK11SymKey *encryptionKey;
SEC_ASN1EncoderContext *ecx;
union {
struct sec_pkcs12_hmac_and_output_info hmacAndOutputInfo;
struct sec_pkcs12_encoder_output encOutput;
} output;
sec_PKCS12PFXItem pfx;
sec_PKCS12MacData mac;
SEC_PKCS7ContentInfo *aSafeCinfo;
SEC_PKCS7EncoderContext *aSafeP7Ecx;
SEC_ASN1EncoderContext *aSafeEcx;
unsigned int currentSafe;
PK11Context *hmacCx;
} sec_PKCS12EncoderContext;
# 169 "p12e.c"
SEC_PKCS12ExportContext *
SEC_PKCS12CreateExportContext(SECKEYGetPasswordKey pwfn, void *pwfnarg,
PK11SlotInfo *slot, void *wincx)
{
PLArenaPool *arena = ((void *)0);
SEC_PKCS12ExportContext *p12ctxt = ((void *)0);
arena = PORT_NewArena(4096);
if(!arena) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
return ((void *)0);
}
p12ctxt = (SEC_PKCS12ExportContext *)PORT_ArenaZAlloc(arena,
sizeof(SEC_PKCS12ExportContext));
if(!p12ctxt) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
p12ctxt->pwfn = pwfn;
p12ctxt->pwfnarg = pwfnarg;
p12ctxt->integrityEnabled = 0;
p12ctxt->arena = arena;
p12ctxt->wincx = wincx;
p12ctxt->slot = (slot) ? slot : PK11_GetInternalSlot();
return p12ctxt;
loser:
if(arena) {
PORT_FreeArena(arena, 1);
}
return ((void *)0);
}
# 221 "p12e.c"
SECStatus
SEC_PKCS12AddPasswordIntegrity(SEC_PKCS12ExportContext *p12ctxt,
SECItem *pwitem, SECOidTag integAlg)
{
if(!p12ctxt || p12ctxt->integrityEnabled) {
return SECFailure;
}
p12ctxt->pwdIntegrity = 1;
p12ctxt->integrityInfo.pwdInfo.password =
(SECItem*)PORT_ArenaZAlloc(p12ctxt->arena, sizeof(SECItem));
if(!p12ctxt->integrityInfo.pwdInfo.password) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
return SECFailure;
}
if(SECITEM_CopyItem(p12ctxt->arena,
p12ctxt->integrityInfo.pwdInfo.password, pwitem)
!= SECSuccess) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
return SECFailure;
}
p12ctxt->integrityInfo.pwdInfo.algorithm = integAlg;
p12ctxt->integrityEnabled = 1;
return SECSuccess;
}
# 260 "p12e.c"
SECStatus
SEC_PKCS12AddPublicKeyIntegrity(SEC_PKCS12ExportContext *p12ctxt,
CERTCertificate *cert, CERTCertDBHandle *certDb,
SECOidTag algorithm, int keySize)
{
if(!p12ctxt) {
return SECFailure;
}
p12ctxt->integrityInfo.pubkeyInfo.cert = cert;
p12ctxt->integrityInfo.pubkeyInfo.certDb = certDb;
p12ctxt->integrityInfo.pubkeyInfo.algorithm = algorithm;
p12ctxt->integrityInfo.pubkeyInfo.keySize = keySize;
p12ctxt->integrityEnabled = 1;
return SECSuccess;
}
# 289 "p12e.c"
static SECStatus
sec_pkcs12_append_safe_info(SEC_PKCS12ExportContext *p12ctxt, SEC_PKCS12SafeInfo *info)
{
void *mark = ((void *)0), *dummy1 = ((void *)0), *dummy2 = ((void *)0);
if(!p12ctxt || !info) {
return SECFailure;
}
mark = PORT_ArenaMark(p12ctxt->arena);
if(!p12ctxt->safeInfoCount) {
p12ctxt->safeInfos = (SEC_PKCS12SafeInfo **)PORT_ArenaZAlloc(p12ctxt->arena,
2 * sizeof(SEC_PKCS12SafeInfo *));
dummy1 = p12ctxt->safeInfos;
p12ctxt->authSafe.encodedSafes = (SECItem **)PORT_ArenaZAlloc(p12ctxt->arena,
2 * sizeof(SECItem *));
dummy2 = p12ctxt->authSafe.encodedSafes;
} else {
dummy1 = PORT_ArenaGrow(p12ctxt->arena, p12ctxt->safeInfos,
(p12ctxt->safeInfoCount + 1) * sizeof(SEC_PKCS12SafeInfo *),
(p12ctxt->safeInfoCount + 2) * sizeof(SEC_PKCS12SafeInfo *));
p12ctxt->safeInfos = (SEC_PKCS12SafeInfo **)dummy1;
dummy2 = PORT_ArenaGrow(p12ctxt->arena, p12ctxt->authSafe.encodedSafes,
(p12ctxt->authSafe.safeCount + 1) * sizeof(SECItem *),
(p12ctxt->authSafe.safeCount + 2) * sizeof(SECItem *));
p12ctxt->authSafe.encodedSafes = (SECItem**)dummy2;
}
if(!dummy1 || !dummy2) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
p12ctxt->safeInfos[p12ctxt->safeInfoCount] = info;
p12ctxt->safeInfos[++p12ctxt->safeInfoCount] = ((void *)0);
p12ctxt->authSafe.encodedSafes[p12ctxt->authSafe.safeCount] =
(SECItem*)PORT_ArenaZAlloc(p12ctxt->arena, sizeof(SECItem));
if(!p12ctxt->authSafe.encodedSafes[p12ctxt->authSafe.safeCount]) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
p12ctxt->authSafe.encodedSafes[++p12ctxt->authSafe.safeCount] = ((void *)0);
PORT_ArenaUnmark(p12ctxt->arena, mark);
return SECSuccess;
loser:
PORT_ArenaRelease(p12ctxt->arena, mark);
return SECFailure;
}
# 349 "p12e.c"
SEC_PKCS12SafeInfo *
SEC_PKCS12CreatePasswordPrivSafe(SEC_PKCS12ExportContext *p12ctxt,
SECItem *pwitem, SECOidTag privAlg)
{
SEC_PKCS12SafeInfo *safeInfo = ((void *)0);
void *mark = ((void *)0);
PK11SlotInfo *slot;
SECAlgorithmID *algId;
SECItem uniPwitem = {siBuffer, ((void *)0), 0};
if(!p12ctxt) {
return ((void *)0);
}
mark = PORT_ArenaMark(p12ctxt->arena);
safeInfo = (SEC_PKCS12SafeInfo *)PORT_ArenaZAlloc(p12ctxt->arena,
sizeof(SEC_PKCS12SafeInfo));
if(!safeInfo) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
PORT_ArenaRelease(p12ctxt->arena, mark);
return ((void *)0);
}
safeInfo->itemCount = 0;
safeInfo->cinfo = SEC_PKCS7CreateEncryptedData(privAlg, 0, p12ctxt->pwfn,
p12ctxt->pwfnarg);
if(!safeInfo->cinfo) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
safeInfo->arena = p12ctxt->arena;
if(!sec_pkcs12_convert_item_to_unicode(((void *)0), &uniPwitem, pwitem,
1, 1, 1)) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
if(SECITEM_CopyItem(p12ctxt->arena, &safeInfo->pwitem, &uniPwitem) != SECSuccess) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
slot = p12ctxt->slot;
if(!slot) {
slot = PK11_GetInternalKeySlot();
if(!slot) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
}
algId = SEC_PKCS7GetEncryptionAlgorithm(safeInfo->cinfo);
safeInfo->encryptionKey = PK11_PBEKeyGen(slot, algId, &uniPwitem,
0, p12ctxt->wincx);
if(!safeInfo->encryptionKey) {
goto loser;
}
safeInfo->arena = p12ctxt->arena;
safeInfo->safe = ((void *)0);
if(sec_pkcs12_append_safe_info(p12ctxt, safeInfo) != SECSuccess) {
goto loser;
}
if(uniPwitem.data) {
SECITEM_ZfreeItem(&uniPwitem, 0);
}
PORT_ArenaUnmark(p12ctxt->arena, mark);
return safeInfo;
loser:
if(safeInfo->cinfo) {
SEC_PKCS7DestroyContentInfo(safeInfo->cinfo);
}
if(uniPwitem.data) {
SECITEM_ZfreeItem(&uniPwitem, 0);
}
PORT_ArenaRelease(p12ctxt->arena, mark);
return ((void *)0);
}
SEC_PKCS12SafeInfo *
SEC_PKCS12CreateUnencryptedSafe(SEC_PKCS12ExportContext *p12ctxt)
{
SEC_PKCS12SafeInfo *safeInfo = ((void *)0);
void *mark = ((void *)0);
if(!p12ctxt) {
return ((void *)0);
}
mark = PORT_ArenaMark(p12ctxt->arena);
safeInfo = (SEC_PKCS12SafeInfo *)PORT_ArenaZAlloc(p12ctxt->arena,
sizeof(SEC_PKCS12SafeInfo));
if(!safeInfo) {
PORT_ArenaRelease(p12ctxt->arena, mark);
PORT_SetError(SEC_ERROR_NO_MEMORY);
return ((void *)0);
}
safeInfo->itemCount = 0;
safeInfo->cinfo = SEC_PKCS7CreateData();
if(!safeInfo->cinfo) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
if(sec_pkcs12_append_safe_info(p12ctxt, safeInfo) != SECSuccess) {
goto loser;
}
PORT_ArenaUnmark(p12ctxt->arena, mark);
return safeInfo;
loser:
if(safeInfo->cinfo) {
SEC_PKCS7DestroyContentInfo(safeInfo->cinfo);
}
PORT_ArenaRelease(p12ctxt->arena, mark);
return ((void *)0);
}
# 497 "p12e.c"
SEC_PKCS12SafeInfo *
SEC_PKCS12CreatePubKeyEncryptedSafe(SEC_PKCS12ExportContext *p12ctxt,
CERTCertDBHandle *certDb,
CERTCertificate *signer,
CERTCertificate **recipients,
SECOidTag algorithm, int keysize)
{
SEC_PKCS12SafeInfo *safeInfo = ((void *)0);
void *mark = ((void *)0);
if(!p12ctxt || !signer || !recipients || !(*recipients)) {
return ((void *)0);
}
mark = PORT_ArenaMark(p12ctxt->arena);
safeInfo = (SEC_PKCS12SafeInfo *)PORT_ArenaZAlloc(p12ctxt->arena,
sizeof(SEC_PKCS12SafeInfo));
if(!safeInfo) {
PORT_ArenaRelease(p12ctxt->arena, mark);
PORT_SetError(SEC_ERROR_NO_MEMORY);
return ((void *)0);
}
safeInfo->itemCount = 0;
safeInfo->arena = p12ctxt->arena;
safeInfo->cinfo = SEC_PKCS7CreateEnvelopedData(signer, certUsageEmailSigner,
certDb, algorithm, keysize,
p12ctxt->pwfn, p12ctxt->pwfnarg);
if(!safeInfo->cinfo) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
if(recipients) {
unsigned int i = 0;
while(recipients[i] != ((void *)0)) {
SECStatus rv = SEC_PKCS7AddRecipient(safeInfo->cinfo, recipients[i],
certUsageEmailRecipient, certDb);
if(rv != SECSuccess) {
goto loser;
}
i++;
}
}
if(sec_pkcs12_append_safe_info(p12ctxt, safeInfo) != SECSuccess) {
goto loser;
}
PORT_ArenaUnmark(p12ctxt->arena, mark);
return safeInfo;
loser:
if(safeInfo->cinfo) {
SEC_PKCS7DestroyContentInfo(safeInfo->cinfo);
safeInfo->cinfo = ((void *)0);
}
PORT_ArenaRelease(p12ctxt->arena, mark);
return ((void *)0);
}
sec_PKCS12SafeContents *
sec_PKCS12CreateSafeContents(PLArenaPool *arena)
{
sec_PKCS12SafeContents *safeContents;
if(arena == ((void *)0)) {
return ((void *)0);
}
safeContents = (sec_PKCS12SafeContents *)PORT_ArenaZAlloc(arena,
sizeof(sec_PKCS12SafeContents));
if(!safeContents) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
safeContents->safeBags = ((void *)0);
safeContents->arena = arena;
safeContents->bagCount = 0;
return safeContents;
loser:
return ((void *)0);
}
SECStatus
sec_pkcs12_append_bag_to_safe_contents(PLArenaPool *arena,
sec_PKCS12SafeContents *safeContents,
sec_PKCS12SafeBag *safeBag)
{
void *mark = ((void *)0), *dummy = ((void *)0);
if(!arena || !safeBag || !safeContents) {
return SECFailure;
}
mark = PORT_ArenaMark(arena);
if(!mark) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
return SECFailure;
}
if(!safeContents->safeBags) {
safeContents->safeBags = (sec_PKCS12SafeBag **)PORT_ArenaZAlloc(arena,
(2 * sizeof(sec_PKCS12SafeBag *)));
dummy = safeContents->safeBags;
safeContents->bagCount = 0;
} else {
dummy = PORT_ArenaGrow(arena, safeContents->safeBags,
(safeContents->bagCount + 1) * sizeof(sec_PKCS12SafeBag *),
(safeContents->bagCount + 2) * sizeof(sec_PKCS12SafeBag *));
safeContents->safeBags = (sec_PKCS12SafeBag **)dummy;
}
if(!dummy) {
PORT_ArenaRelease(arena, mark);
PORT_SetError(SEC_ERROR_NO_MEMORY);
return SECFailure;
}
safeContents->safeBags[safeContents->bagCount++] = safeBag;
safeContents->safeBags[safeContents->bagCount] = ((void *)0);
PORT_ArenaUnmark(arena, mark);
return SECSuccess;
}
SECStatus
sec_pkcs12_append_bag(SEC_PKCS12ExportContext *p12ctxt,
SEC_PKCS12SafeInfo *safeInfo, sec_PKCS12SafeBag *safeBag)
{
sec_PKCS12SafeContents *dest;
SECStatus rv = SECFailure;
if(!p12ctxt || !safeBag || !safeInfo) {
return SECFailure;
}
if(!safeInfo->safe) {
safeInfo->safe = sec_PKCS12CreateSafeContents(p12ctxt->arena);
if(!safeInfo->safe) {
return SECFailure;
}
}
dest = safeInfo->safe;
rv = sec_pkcs12_append_bag_to_safe_contents(p12ctxt->arena, dest, safeBag);
if(rv == SECSuccess) {
safeInfo->itemCount++;
}
return rv;
}
sec_PKCS12SafeBag *
sec_PKCS12CreateSafeBag(SEC_PKCS12ExportContext *p12ctxt, SECOidTag bagType,
void *bagData)
{
sec_PKCS12SafeBag *safeBag;
PRBool setName = 1;
void *mark = ((void *)0);
SECStatus rv = SECSuccess;
SECOidData *oidData = ((void *)0);
if(!p12ctxt) {
return ((void *)0);
}
mark = PORT_ArenaMark(p12ctxt->arena);
if(!mark) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
return ((void *)0);
}
safeBag = (sec_PKCS12SafeBag *)PORT_ArenaZAlloc(p12ctxt->arena,
sizeof(sec_PKCS12SafeBag));
if(!safeBag) {
PORT_ArenaRelease(p12ctxt->arena, mark);
PORT_SetError(SEC_ERROR_NO_MEMORY);
return ((void *)0);
}
switch(bagType) {
case SEC_OID_PKCS12_V1_KEY_BAG_ID:
safeBag->safeBagContent.pkcs8KeyBag =
(SECKEYPrivateKeyInfo *)bagData;
break;
case SEC_OID_PKCS12_V1_CERT_BAG_ID:
safeBag->safeBagContent.certBag = (sec_PKCS12CertBag *)bagData;
break;
case SEC_OID_PKCS12_V1_CRL_BAG_ID:
safeBag->safeBagContent.crlBag = (sec_PKCS12CRLBag *)bagData;
break;
case SEC_OID_PKCS12_V1_SECRET_BAG_ID:
safeBag->safeBagContent.secretBag = (sec_PKCS12SecretBag *)bagData;
break;
case SEC_OID_PKCS12_V1_PKCS8_SHROUDED_KEY_BAG_ID:
safeBag->safeBagContent.pkcs8ShroudedKeyBag =
(SECKEYEncryptedPrivateKeyInfo *)bagData;
break;
case SEC_OID_PKCS12_V1_SAFE_CONTENTS_BAG_ID:
safeBag->safeBagContent.safeContents =
(sec_PKCS12SafeContents *)bagData;
setName = 0;
break;
default:
goto loser;
}
oidData = SECOID_FindOIDByTag(bagType);
if(oidData) {
rv = SECITEM_CopyItem(p12ctxt->arena, &safeBag->safeBagType, &oidData->oid);
if(rv != SECSuccess) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
} else {
goto loser;
}
safeBag->arena = p12ctxt->arena;
PORT_ArenaUnmark(p12ctxt->arena, mark);
return safeBag;
loser:
if(mark) {
PORT_ArenaRelease(p12ctxt->arena, mark);
}
return ((void *)0);
}
sec_PKCS12CertBag *
sec_PKCS12NewCertBag(PLArenaPool *arena, SECOidTag certType)
{
sec_PKCS12CertBag *certBag = ((void *)0);
SECOidData *bagType = ((void *)0);
SECStatus rv;
void *mark = ((void *)0);
if(!arena) {
return ((void *)0);
}
mark = PORT_ArenaMark(arena);
certBag = (sec_PKCS12CertBag *)PORT_ArenaZAlloc(arena,
sizeof(sec_PKCS12CertBag));
if(!certBag) {
PORT_ArenaRelease(arena, mark);
PORT_SetError(SEC_ERROR_NO_MEMORY);
return ((void *)0);
}
bagType = SECOID_FindOIDByTag(certType);
if(!bagType) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
rv = SECITEM_CopyItem(arena, &certBag->bagID, &bagType->oid);
if(rv != SECSuccess) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
PORT_ArenaUnmark(arena, mark);
return certBag;
loser:
PORT_ArenaRelease(arena, mark);
return ((void *)0);
}
sec_PKCS12CRLBag *
sec_PKCS12NewCRLBag(PLArenaPool *arena, SECOidTag crlType)
{
sec_PKCS12CRLBag *crlBag = ((void *)0);
SECOidData *bagType = ((void *)0);
SECStatus rv;
void *mark = ((void *)0);
if(!arena) {
return ((void *)0);
}
mark = PORT_ArenaMark(arena);
crlBag = (sec_PKCS12CRLBag *)PORT_ArenaZAlloc(arena,
sizeof(sec_PKCS12CRLBag));
if(!crlBag) {
PORT_ArenaRelease(arena, mark);
PORT_SetError(SEC_ERROR_NO_MEMORY);
return ((void *)0);
}
bagType = SECOID_FindOIDByTag(crlType);
if(!bagType) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
rv = SECITEM_CopyItem(arena, &crlBag->bagID, &bagType->oid);
if(rv != SECSuccess) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
PORT_ArenaUnmark(arena, mark);
return crlBag;
loser:
PORT_ArenaRelease(arena, mark);
return ((void *)0);
}
# 855 "p12e.c"
SECStatus
sec_PKCS12AddAttributeToBag(SEC_PKCS12ExportContext *p12ctxt,
sec_PKCS12SafeBag *safeBag, SECOidTag attrType,
SECItem *attrData)
{
sec_PKCS12Attribute *attribute;
void *mark = ((void *)0), *dummy = ((void *)0);
SECOidData *oiddata = ((void *)0);
SECItem unicodeName = { siBuffer, ((void *)0), 0};
void *src = ((void *)0);
unsigned int nItems = 0;
SECStatus rv;
if(!safeBag || !p12ctxt) {
return SECFailure;
}
mark = PORT_ArenaMark(safeBag->arena);
attribute = (sec_PKCS12Attribute *)PORT_ArenaZAlloc(safeBag->arena,
sizeof(sec_PKCS12Attribute));
if(!attribute) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
oiddata = SECOID_FindOIDByTag(attrType);
if(!oiddata) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
if(SECITEM_CopyItem(p12ctxt->arena, &attribute->attrType, &oiddata->oid) !=
SECSuccess) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
nItems = 1;
switch(attrType) {
case SEC_OID_PKCS9_LOCAL_KEY_ID:
{
src = attrData;
break;
}
case SEC_OID_PKCS9_FRIENDLY_NAME:
{
if(!sec_pkcs12_convert_item_to_unicode(p12ctxt->arena,
&unicodeName, attrData, 0,
0, 1)) {
goto loser;
}
src = &unicodeName;
break;
}
default:
goto loser;
}
attribute->attrValue = (SECItem **)PORT_ArenaZAlloc(p12ctxt->arena,
((nItems + 1) * sizeof(SECItem *)));
if(!attribute->attrValue) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
attribute->attrValue[0] = (SECItem *)PORT_ArenaZAlloc(p12ctxt->arena,
sizeof(SECItem));
if(!attribute->attrValue[0]) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
attribute->attrValue[1] = ((void *)0);
rv = SECITEM_CopyItem(p12ctxt->arena, attribute->attrValue[0],
(SECItem*)src);
if(rv != SECSuccess) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
if(safeBag->nAttribs) {
dummy = PORT_ArenaGrow(p12ctxt->arena, safeBag->attribs,
((safeBag->nAttribs + 1) * sizeof(sec_PKCS12Attribute *)),
((safeBag->nAttribs + 2) * sizeof(sec_PKCS12Attribute *)));
safeBag->attribs = (sec_PKCS12Attribute **)dummy;
} else {
safeBag->attribs = (sec_PKCS12Attribute **)PORT_ArenaZAlloc(p12ctxt->arena,
2 * sizeof(sec_PKCS12Attribute *));
dummy = safeBag->attribs;
}
if(!dummy) {
goto loser;
}
safeBag->attribs[safeBag->nAttribs] = attribute;
safeBag->attribs[++safeBag->nAttribs] = ((void *)0);
PORT_ArenaUnmark(p12ctxt->arena, mark);
return SECSuccess;
loser:
if(mark) {
PORT_ArenaRelease(p12ctxt->arena, mark);
}
return SECFailure;
}
# 982 "p12e.c"
SECStatus
SEC_PKCS12AddCert(SEC_PKCS12ExportContext *p12ctxt, SEC_PKCS12SafeInfo *safe,
void *nestedDest, CERTCertificate *cert,
CERTCertDBHandle *certDb, SECItem *keyId,
PRBool includeCertChain)
{
sec_PKCS12CertBag *certBag;
sec_PKCS12SafeBag *safeBag;
void *mark;
SECStatus rv;
SECItem nick = {siBuffer, ((void *)0),0};
if(!p12ctxt || !cert) {
return SECFailure;
}
mark = PORT_ArenaMark(p12ctxt->arena);
certBag = sec_PKCS12NewCertBag(p12ctxt->arena,
SEC_OID_PKCS9_X509_CERT);
if(!certBag) {
goto loser;
}
if(SECITEM_CopyItem(p12ctxt->arena, &certBag->value.x509Cert,
&cert->derCert) != SECSuccess) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
if(includeCertChain) {
CERTCertificateList *certList = CERT_CertChainFromCert(cert,
certUsageSSLClient,
1);
unsigned int count = 0;
if(!certList) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
for(count = 0; count < (unsigned int)certList->len; count++) {
if(SECITEM_CompareItem(&certList->certs[count], &cert->derCert)
!= SECEqual) {
CERTCertificate *tempCert;
tempCert = __CERT_NewTempCertificate(certDb,
&certList->certs[count], ((void *)0),
0, 1);
if(!tempCert) {
CERT_DestroyCertificateList(certList);
goto loser;
}
if(SEC_PKCS12AddCert(p12ctxt, safe, nestedDest, tempCert, certDb,
((void *)0), 0) != SECSuccess) {
CERT_DestroyCertificate(tempCert);
CERT_DestroyCertificateList(certList);
goto loser;
}
CERT_DestroyCertificate(tempCert);
}
}
CERT_DestroyCertificateList(certList);
}
if(cert->nickname) {
if (cert->slot && !PK11_IsInternal(cert->slot)) {
char *delimit;
delimit = (__extension__ (__builtin_constant_p (':') && (':') == '\0' ? (char *) __rawmemchr (cert->nickname, ':') : strchr (cert->nickname, ':')));
if (delimit == ((void *)0)) {
nick.data = (unsigned char *)cert->nickname;
nick.len = strlen(cert->nickname);
} else {
delimit++;
nick.data = (unsigned char *)PORT_ArenaStrdup(p12ctxt->arena,
delimit);
nick.len = strlen(delimit);
}
} else {
nick.data = (unsigned char *)cert->nickname;
nick.len = strlen(cert->nickname);
}
}
safeBag = sec_PKCS12CreateSafeBag(p12ctxt, SEC_OID_PKCS12_V1_CERT_BAG_ID,
certBag);
if(!safeBag) {
goto loser;
}
if(nick.data) {
if(sec_PKCS12AddAttributeToBag(p12ctxt, safeBag,
SEC_OID_PKCS9_FRIENDLY_NAME, &nick)
!= SECSuccess) {
goto loser;
}
}
if(keyId) {
if(sec_PKCS12AddAttributeToBag(p12ctxt, safeBag, SEC_OID_PKCS9_LOCAL_KEY_ID,
keyId) != SECSuccess) {
goto loser;
}
}
if(nestedDest) {
rv = sec_pkcs12_append_bag_to_safe_contents(p12ctxt->arena,
(sec_PKCS12SafeContents*)nestedDest,
safeBag);
} else {
rv = sec_pkcs12_append_bag(p12ctxt, safe, safeBag);
}
if(rv != SECSuccess) {
goto loser;
}
PORT_ArenaUnmark(p12ctxt->arena, mark);
return SECSuccess;
loser:
if(mark) {
PORT_ArenaRelease(p12ctxt->arena, mark);
}
return SECFailure;
}
# 1144 "p12e.c"
static SECStatus
SEC_PKCS12AddEncryptedKey(SEC_PKCS12ExportContext *p12ctxt,
SECKEYEncryptedPrivateKeyInfo *epki, SEC_PKCS12SafeInfo *safe,
void *nestedDest, SECItem *keyId, SECItem *nickName)
{
void *mark;
void *keyItem;
SECOidTag keyType;
SECStatus rv = SECFailure;
sec_PKCS12SafeBag *returnBag;
if(!p12ctxt || !safe || !epki) {
return SECFailure;
}
mark = PORT_ArenaMark(p12ctxt->arena);
keyItem = PORT_ArenaZAlloc(p12ctxt->arena,
sizeof(SECKEYEncryptedPrivateKeyInfo));
if(!keyItem) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
rv = SECKEY_CopyEncryptedPrivateKeyInfo(p12ctxt->arena,
(SECKEYEncryptedPrivateKeyInfo *)keyItem,
epki);
keyType = SEC_OID_PKCS12_V1_PKCS8_SHROUDED_KEY_BAG_ID;
if(rv != SECSuccess) {
goto loser;
}
returnBag = sec_PKCS12CreateSafeBag(p12ctxt, keyType, keyItem);
if(!returnBag) {
rv = SECFailure;
goto loser;
}
if(nickName) {
if(sec_PKCS12AddAttributeToBag(p12ctxt, returnBag,
SEC_OID_PKCS9_FRIENDLY_NAME, nickName)
!= SECSuccess) {
goto loser;
}
}
if(keyId) {
if(sec_PKCS12AddAttributeToBag(p12ctxt, returnBag, SEC_OID_PKCS9_LOCAL_KEY_ID,
keyId) != SECSuccess) {
goto loser;
}
}
if(nestedDest) {
rv = sec_pkcs12_append_bag_to_safe_contents(p12ctxt->arena,
(sec_PKCS12SafeContents*)nestedDest,
returnBag);
} else {
rv = sec_pkcs12_append_bag(p12ctxt, safe, returnBag);
}
loser:
if (rv != SECSuccess) {
PORT_ArenaRelease(p12ctxt->arena, mark);
} else {
PORT_ArenaUnmark(p12ctxt->arena, mark);
}
return rv;
}
# 1234 "p12e.c"
SECStatus
SEC_PKCS12AddKeyForCert(SEC_PKCS12ExportContext *p12ctxt, SEC_PKCS12SafeInfo *safe,
void *nestedDest, CERTCertificate *cert,
PRBool shroudKey, SECOidTag algorithm, SECItem *pwitem,
SECItem *keyId, SECItem *nickName)
{
void *mark;
void *keyItem;
SECOidTag keyType;
SECStatus rv = SECFailure;
SECItem nickname = {siBuffer,((void *)0),0}, uniPwitem = {siBuffer, ((void *)0), 0};
sec_PKCS12SafeBag *returnBag;
if(!p12ctxt || !cert || !safe) {
return SECFailure;
}
mark = PORT_ArenaMark(p12ctxt->arena);
if(!shroudKey) {
SECKEYPrivateKeyInfo *pki = PK11_ExportPrivateKeyInfo(cert,
p12ctxt->wincx);
if(!pki) {
PORT_ArenaRelease(p12ctxt->arena, mark);
PORT_SetError(SEC_ERROR_PKCS12_UNABLE_TO_EXPORT_KEY);
return SECFailure;
}
keyItem = PORT_ArenaZAlloc(p12ctxt->arena, sizeof(SECKEYPrivateKeyInfo));
if(!keyItem) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
rv = SECKEY_CopyPrivateKeyInfo(p12ctxt->arena,
(SECKEYPrivateKeyInfo *)keyItem, pki);
keyType = SEC_OID_PKCS12_V1_KEY_BAG_ID;
SECKEY_DestroyPrivateKeyInfo(pki, 1);
} else {
SECKEYEncryptedPrivateKeyInfo *epki = ((void *)0);
PK11SlotInfo *slot = p12ctxt->slot;
if(!sec_pkcs12_convert_item_to_unicode(p12ctxt->arena, &uniPwitem,
pwitem, 1, 1, 1)) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
if(PK11_IsInternal(p12ctxt->slot)) {
slot = PK11_GetInternalKeySlot();
}
epki = PK11_ExportEncryptedPrivateKeyInfo(slot, algorithm,
&uniPwitem, cert, 1,
p12ctxt->wincx);
if(PK11_IsInternal(p12ctxt->slot)) {
PK11_FreeSlot(slot);
}
keyItem = PORT_ArenaZAlloc(p12ctxt->arena,
sizeof(SECKEYEncryptedPrivateKeyInfo));
if(!keyItem) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
if(!epki) {
PORT_SetError(SEC_ERROR_PKCS12_UNABLE_TO_EXPORT_KEY);
return SECFailure;
}
rv = SECKEY_CopyEncryptedPrivateKeyInfo(p12ctxt->arena,
(SECKEYEncryptedPrivateKeyInfo *)keyItem,
epki);
keyType = SEC_OID_PKCS12_V1_PKCS8_SHROUDED_KEY_BAG_ID;
SECKEY_DestroyEncryptedPrivateKeyInfo(epki, 1);
}
if(rv != SECSuccess) {
goto loser;
}
if(!nickName) {
if(cert->nickname) {
nickname.data = (unsigned char *)cert->nickname;
nickname.len = strlen(cert->nickname);
nickName = &nickname;
}
}
returnBag = sec_PKCS12CreateSafeBag(p12ctxt, keyType, keyItem);
if(!returnBag) {
rv = SECFailure;
goto loser;
}
if(nickName) {
if(sec_PKCS12AddAttributeToBag(p12ctxt, returnBag,
SEC_OID_PKCS9_FRIENDLY_NAME, nickName)
!= SECSuccess) {
goto loser;
}
}
if(keyId) {
if(sec_PKCS12AddAttributeToBag(p12ctxt, returnBag, SEC_OID_PKCS9_LOCAL_KEY_ID,
keyId) != SECSuccess) {
goto loser;
}
}
if(nestedDest) {
rv = sec_pkcs12_append_bag_to_safe_contents(p12ctxt->arena,
(sec_PKCS12SafeContents*)nestedDest,
returnBag);
} else {
rv = sec_pkcs12_append_bag(p12ctxt, safe, returnBag);
}
loser:
if (rv != SECSuccess) {
PORT_ArenaRelease(p12ctxt->arena, mark);
} else {
PORT_ArenaUnmark(p12ctxt->arena, mark);
}
return rv;
}
# 1384 "p12e.c"
SECStatus
SEC_PKCS12AddDERCertAndEncryptedKey(SEC_PKCS12ExportContext *p12ctxt,
void *certSafe, void *certNestedDest,
SECItem *derCert, void *keySafe,
void *keyNestedDest, SECKEYEncryptedPrivateKeyInfo *epki,
char *nickname)
{
SECStatus rv = SECFailure;
SGNDigestInfo *digest = ((void *)0);
void *mark = ((void *)0);
CERTCertificate *cert;
SECItem nick = {siBuffer, ((void *)0),0}, *nickPtr = ((void *)0);
if(!p12ctxt || !certSafe || !keySafe || !derCert) {
return SECFailure;
}
mark = PORT_ArenaMark(p12ctxt->arena);
cert = __CERT_NewTempCertificate(CERT_GetDefaultCertDB(), derCert,
((void *)0), 0, 1);
if(!cert) {
PORT_ArenaRelease(p12ctxt->arena, mark);
PORT_SetError(SEC_ERROR_NO_MEMORY);
return SECFailure;
}
cert->nickname = nickname;
digest = sec_pkcs12_compute_thumbprint(&cert->derCert);
if(!digest) {
CERT_DestroyCertificate(cert);
return SECFailure;
}
rv = SEC_PKCS12AddCert(p12ctxt, (SEC_PKCS12SafeInfo*)certSafe,
certNestedDest, cert, ((void *)0),
&digest->digest, 0);
if(rv != SECSuccess) {
goto loser;
}
if(nickname) {
nick.data = (unsigned char *)nickname;
nick.len = strlen(nickname);
nickPtr = &nick;
} else {
nickPtr = ((void *)0);
}
rv = SEC_PKCS12AddEncryptedKey(p12ctxt, epki, (SEC_PKCS12SafeInfo*)keySafe,
keyNestedDest, &digest->digest, nickPtr );
if(rv != SECSuccess) {
goto loser;
}
SGN_DestroyDigestInfo(digest);
PORT_ArenaUnmark(p12ctxt->arena, mark);
return SECSuccess;
loser:
SGN_DestroyDigestInfo(digest);
CERT_DestroyCertificate(cert);
PORT_ArenaRelease(p12ctxt->arena, mark);
return SECFailure;
}
# 1467 "p12e.c"
SECStatus
SEC_PKCS12AddCertAndKey(SEC_PKCS12ExportContext *p12ctxt,
void *certSafe, void *certNestedDest,
CERTCertificate *cert, CERTCertDBHandle *certDb,
void *keySafe, void *keyNestedDest,
PRBool shroudKey, SECItem *pwitem, SECOidTag algorithm)
{
SECStatus rv = SECFailure;
SGNDigestInfo *digest = ((void *)0);
void *mark = ((void *)0);
if(!p12ctxt || !certSafe || !keySafe || !cert) {
return SECFailure;
}
mark = PORT_ArenaMark(p12ctxt->arena);
digest = sec_pkcs12_compute_thumbprint(&cert->derCert);
if(!digest) {
PORT_ArenaRelease(p12ctxt->arena, mark);
return SECFailure;
}
rv = SEC_PKCS12AddCert(p12ctxt, (SEC_PKCS12SafeInfo*)certSafe,
(SEC_PKCS12SafeInfo*)certNestedDest, cert, certDb,
&digest->digest, 1);
if(rv != SECSuccess) {
goto loser;
}
rv = SEC_PKCS12AddKeyForCert(p12ctxt, (SEC_PKCS12SafeInfo*)keySafe,
keyNestedDest, cert,
shroudKey, algorithm, pwitem,
&digest->digest, ((void *)0) );
if(rv != SECSuccess) {
goto loser;
}
SGN_DestroyDigestInfo(digest);
PORT_ArenaUnmark(p12ctxt->arena, mark);
return SECSuccess;
loser:
SGN_DestroyDigestInfo(digest);
PORT_ArenaRelease(p12ctxt->arena, mark);
return SECFailure;
}
# 1528 "p12e.c"
void *
SEC_PKCS12CreateNestedSafeContents(SEC_PKCS12ExportContext *p12ctxt,
void *baseSafe, void *nestedDest)
{
sec_PKCS12SafeContents *newSafe;
sec_PKCS12SafeBag *safeContentsBag;
void *mark;
SECStatus rv;
if(!p12ctxt || !baseSafe) {
return ((void *)0);
}
mark = PORT_ArenaMark(p12ctxt->arena);
newSafe = sec_PKCS12CreateSafeContents(p12ctxt->arena);
if(!newSafe) {
PORT_ArenaRelease(p12ctxt->arena, mark);
PORT_SetError(SEC_ERROR_NO_MEMORY);
return ((void *)0);
}
safeContentsBag = sec_PKCS12CreateSafeBag(p12ctxt,
SEC_OID_PKCS12_V1_SAFE_CONTENTS_BAG_ID,
newSafe);
if(!safeContentsBag) {
goto loser;
}
if(nestedDest) {
rv = sec_pkcs12_append_bag_to_safe_contents(p12ctxt->arena,
(sec_PKCS12SafeContents*)nestedDest,
safeContentsBag);
} else {
rv = sec_pkcs12_append_bag(p12ctxt, (SEC_PKCS12SafeInfo*)baseSafe,
safeContentsBag);
}
if(rv != SECSuccess) {
goto loser;
}
PORT_ArenaUnmark(p12ctxt->arena, mark);
return newSafe;
loser:
PORT_ArenaRelease(p12ctxt->arena, mark);
return ((void *)0);
}
# 1587 "p12e.c"
sec_PKCS12EncoderContext *
sec_pkcs12_encoder_start_context(SEC_PKCS12ExportContext *p12exp)
{
sec_PKCS12EncoderContext *p12enc = ((void *)0);
unsigned int i, nonEmptyCnt;
SECStatus rv;
SECItem ignore = {0};
void *mark;
if(!p12exp || !p12exp->safeInfos) {
return ((void *)0);
}
i = nonEmptyCnt = 0;
while(p12exp->safeInfos[i]) {
if(p12exp->safeInfos[i]->itemCount) {
nonEmptyCnt++;
}
i++;
}
if(nonEmptyCnt == 0) {
return ((void *)0);
}
p12exp->authSafe.encodedSafes[nonEmptyCnt] = ((void *)0);
mark = PORT_ArenaMark(p12exp->arena);
p12enc = (sec_PKCS12EncoderContext*)PORT_ArenaZAlloc(p12exp->arena,
sizeof(sec_PKCS12EncoderContext));
if(!p12enc) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
return ((void *)0);
}
p12enc->arena = p12exp->arena;
p12enc->p12exp = p12exp;
(__extension__ (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (&p12enc->pfx); __builtin_memset (__s, '\0', sizeof(sec_PKCS12PFXItem)); __s; }) : memset (&p12enc->pfx, 0, sizeof(sec_PKCS12PFXItem))));
if(!SEC_ASN1EncodeInteger(p12exp->arena, &(p12enc->pfx.version),
3) ) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
if(p12exp->integrityEnabled && !p12exp->pwdIntegrity) {
SECStatus rv;
p12enc->aSafeCinfo = SEC_PKCS7CreateSignedData(
p12exp->integrityInfo.pubkeyInfo.cert,
certUsageEmailSigner,
p12exp->integrityInfo.pubkeyInfo.certDb,
p12exp->integrityInfo.pubkeyInfo.algorithm,
((void *)0),
p12exp->pwfn,
p12exp->pwfnarg);
if(!p12enc->aSafeCinfo) {
goto loser;
}
if(SEC_PKCS7IncludeCertChain(p12enc->aSafeCinfo,((void *)0)) != SECSuccess) {
goto loser;
}
rv = SEC_PKCS7AddSigningTime(p12enc->aSafeCinfo);
((void) 0);
} else {
p12enc->aSafeCinfo = SEC_PKCS7CreateData();
if(p12exp->integrityEnabled) {
SECItem pwd = {siBuffer,((void *)0), 0};
SECItem *salt = sec_pkcs12_generate_salt();
PK11SymKey *symKey;
SECItem *params;
CK_MECHANISM_TYPE integrityMech;
(__extension__ (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (&p12enc->mac); __builtin_memset (__s, '\0', sizeof(sec_PKCS12MacData)); __s; }) : memset (&p12enc->mac, 0, sizeof(sec_PKCS12MacData))));
if(!salt) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
if(SECITEM_CopyItem(p12exp->arena, &(p12enc->mac.macSalt), salt)
!= SECSuccess) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
if(!sec_pkcs12_convert_item_to_unicode(((void *)0), &pwd,
p12exp->integrityInfo.pwdInfo.password, 1,
1, 1)) {
goto loser;
}
params = PK11_CreatePBEParams(salt, &pwd, 1);
SECITEM_ZfreeItem(salt, 1);
SECITEM_ZfreeItem(&pwd, 0);
switch (p12exp->integrityInfo.pwdInfo.algorithm) {
case SEC_OID_SHA1:
integrityMech = 0x80000009L; break;
case SEC_OID_MD5:
integrityMech = 0x8000000aL; break;
case SEC_OID_MD2:
integrityMech = 0x8000000bL; break;
default:
goto loser;
}
symKey = PK11_KeyGen(((void *)0), integrityMech, params, 20, ((void *)0));
PK11_DestroyPBEParams(params);
if(!symKey) {
goto loser;
}
p12enc->hmacCx = PK11_CreateContextBySymKey(
sec_pkcs12_algtag_to_mech(p12exp->integrityInfo.pwdInfo.algorithm),
0x00000108, symKey, &ignore);
if(!p12enc->hmacCx) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
rv = PK11_DigestBegin(p12enc->hmacCx);
if (rv != SECSuccess)
goto loser;
}
}
if(!p12enc->aSafeCinfo) {
goto loser;
}
PORT_ArenaUnmark(p12exp->arena, mark);
return p12enc;
loser:
if(p12enc) {
if(p12enc->aSafeCinfo) {
SEC_PKCS7DestroyContentInfo(p12enc->aSafeCinfo);
}
if(p12enc->hmacCx) {
PK11_DestroyContext(p12enc->hmacCx, 1);
}
}
if (p12exp->arena != ((void *)0))
PORT_ArenaRelease(p12exp->arena, mark);
return ((void *)0);
}
static void
sec_pkcs12_encoder_out(void *arg, const char *buf, unsigned long len,
int depth, SEC_ASN1EncodingPart data_kind)
{
struct sec_pkcs12_encoder_output *output;
output = (struct sec_pkcs12_encoder_output*)arg;
(* output->outputfn)(output->outputarg, buf, len);
}
static void
sec_pkcs12_wrap_pkcs7_encoder_update(void *arg, const char *buf,
unsigned long len, int depth,
SEC_ASN1EncodingPart data_kind)
{
SEC_PKCS7EncoderContext *ecx;
if(!buf || !len) {
return;
}
ecx = (SEC_PKCS7EncoderContext*)arg;
SEC_PKCS7EncoderUpdate(ecx, buf, len);
}
static void
sec_pkcs12_wrap_asn1_update_for_p7_update(void *arg, const char *buf,
unsigned long len)
{
if(!buf && !len) return;
SEC_ASN1EncoderUpdate((SEC_ASN1EncoderContext*)arg, buf, len);
}
static void
sec_pkcs12_asafe_update_hmac_and_encode_bits(void *arg, const char *buf,
unsigned long len, int depth,
SEC_ASN1EncodingPart data_kind)
{
sec_PKCS12EncoderContext *p12ecx;
p12ecx = (sec_PKCS12EncoderContext*)arg;
PK11_DigestOp(p12ecx->hmacCx, (unsigned char *)buf, len);
sec_pkcs12_wrap_pkcs7_encoder_update(p12ecx->aSafeP7Ecx, buf, len,
depth, data_kind);
}
static SECStatus
sec_pkcs12_encoder_asafe_process(sec_PKCS12EncoderContext *p12ecx)
{
SECStatus rv = SECSuccess;
SEC_PKCS5KeyAndPassword keyPwd;
SEC_PKCS7EncoderContext *p7ecx;
SEC_PKCS7ContentInfo *cinfo;
SEC_ASN1EncoderContext *ecx = ((void *)0);
void *arg = ((void *)0);
if(p12ecx->currentSafe < p12ecx->p12exp->authSafe.safeCount) {
SEC_PKCS12SafeInfo *safeInfo;
SECOidTag cinfoType;
safeInfo = p12ecx->p12exp->safeInfos[p12ecx->currentSafe];
if(safeInfo->itemCount == 0) {
return SECSuccess;
}
cinfo = safeInfo->cinfo;
cinfoType = SEC_PKCS7ContentType(cinfo);
switch(cinfoType) {
case SEC_OID_PKCS7_DATA:
arg = ((void *)0);
break;
case SEC_OID_PKCS7_ENCRYPTED_DATA:
keyPwd.pwitem = &safeInfo->pwitem;
keyPwd.key = safeInfo->encryptionKey;
arg = &keyPwd;
break;
case SEC_OID_PKCS7_ENVELOPED_DATA:
arg = ((void *)0);
break;
default:
return SECFailure;
}
p7ecx = SEC_PKCS7EncoderStart(cinfo,
sec_pkcs12_wrap_asn1_update_for_p7_update,
p12ecx->aSafeEcx, (PK11SymKey *)arg);
if(!p7ecx) {
goto loser;
}
ecx = SEC_ASN1EncoderStart(safeInfo->safe, sec_PKCS12SafeContentsTemplate,
sec_pkcs12_wrap_pkcs7_encoder_update, p7ecx);
if(!ecx) {
goto loser;
}
rv = SEC_ASN1EncoderUpdate(ecx, ((void *)0), 0);
SEC_ASN1EncoderFinish(ecx);
ecx = ((void *)0);
if(rv != SECSuccess) {
goto loser;
}
rv = SEC_PKCS7EncoderFinish(p7ecx, p12ecx->p12exp->pwfn,
p12ecx->p12exp->pwfnarg);
}
return SECSuccess;
loser:
if(p7ecx) {
SEC_PKCS7EncoderFinish(p7ecx, p12ecx->p12exp->pwfn,
p12ecx->p12exp->pwfnarg);
}
if(ecx) {
SEC_ASN1EncoderFinish(ecx);
}
return SECFailure;
}
static SECStatus
sec_pkcs12_update_mac(sec_PKCS12EncoderContext *p12ecx)
{
SECItem hmac = { siBuffer, ((void *)0), 0 };
SECStatus rv;
SGNDigestInfo *di = ((void *)0);
void *dummy;
if(!p12ecx) {
return SECFailure;
}
if(!p12ecx->p12exp->integrityEnabled) {
return SECSuccess;
}
if(!p12ecx->p12exp->pwdIntegrity) {
return SECSuccess;
}
hmac.data = (unsigned char *)PORT_ZAlloc(20);
if(!hmac.data) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
return SECFailure;
}
rv = PK11_DigestFinal(p12ecx->hmacCx, hmac.data, &hmac.len, 20);
if(rv != SECSuccess) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
di = SGN_CreateDigestInfo(p12ecx->p12exp->integrityInfo.pwdInfo.algorithm,
hmac.data, hmac.len);
if(!di) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
rv = SECFailure;
goto loser;
}
rv = SGN_CopyDigestInfo(p12ecx->arena, &p12ecx->mac.safeMac, di);
if(rv != SECSuccess) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
dummy = SEC_ASN1EncodeItem(p12ecx->arena, &p12ecx->pfx.encodedMacData,
&p12ecx->mac, sec_PKCS12MacDataTemplate);
if(!dummy) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
rv = SECFailure;
}
loser:
if(di) {
SGN_DestroyDigestInfo(di);
}
if(hmac.data) {
SECITEM_ZfreeItem(&hmac, 0);
}
PK11_DestroyContext(p12ecx->hmacCx, 1);
p12ecx->hmacCx = ((void *)0);
return rv;
}
static void
sec_pkcs12_wrap_asn1_encoder_update(void *arg, const char *buf,
unsigned long len)
{
SEC_ASN1EncoderContext *cx;
cx = (SEC_ASN1EncoderContext*)arg;
SEC_ASN1EncoderUpdate(cx, buf, len);
}
static void
sec_pkcs12_encoder_pfx_notify(void *arg, PRBool before, void *dest, int real_depth)
{
sec_PKCS12EncoderContext *p12ecx;
if(!before) {
return;
}
p12ecx = (sec_PKCS12EncoderContext*)arg;
if(dest != &p12ecx->pfx.encodedAuthSafe) {
return;
}
SEC_ASN1EncoderSetTakeFromBuf(p12ecx->ecx);
SEC_ASN1EncoderSetStreaming(p12ecx->ecx);
SEC_ASN1EncoderClearNotifyProc(p12ecx->ecx);
}
# 2009 "p12e.c"
SECStatus
SEC_PKCS12Encode(SEC_PKCS12ExportContext *p12exp,
SEC_PKCS12EncoderOutputCallback output, void *outputarg)
{
sec_PKCS12EncoderContext *p12enc;
struct sec_pkcs12_encoder_output outInfo;
SECStatus rv;
if(!p12exp || !output) {
return SECFailure;
}
p12enc = sec_pkcs12_encoder_start_context(p12exp);
if(!p12enc) {
return SECFailure;
}
outInfo.outputfn = output;
outInfo.outputarg = outputarg;
p12enc->ecx = SEC_ASN1EncoderStart(&p12enc->pfx, sec_PKCS12PFXItemTemplate,
sec_pkcs12_encoder_out,
&outInfo);
if(!p12enc->ecx) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
rv = SECFailure;
goto loser;
}
SEC_ASN1EncoderSetStreaming(p12enc->ecx);
SEC_ASN1EncoderSetNotifyProc(p12enc->ecx, sec_pkcs12_encoder_pfx_notify, p12enc);
rv = SEC_ASN1EncoderUpdate(p12enc->ecx, ((void *)0), 0);
if(rv != SECSuccess) {
rv = SECFailure;
goto loser;
}
p12enc->aSafeP7Ecx = SEC_PKCS7EncoderStart(p12enc->aSafeCinfo,
sec_pkcs12_wrap_asn1_encoder_update,
p12enc->ecx, ((void *)0));
if(!p12enc->aSafeP7Ecx) {
rv = SECFailure;
goto loser;
}
if(p12enc->p12exp->integrityEnabled && p12enc->p12exp->pwdIntegrity) {
p12enc->aSafeEcx = SEC_ASN1EncoderStart(&p12enc->p12exp->authSafe,
sec_PKCS12AuthenticatedSafeTemplate,
sec_pkcs12_asafe_update_hmac_and_encode_bits,
p12enc);
} else {
p12enc->aSafeEcx = SEC_ASN1EncoderStart(&p12enc->p12exp->authSafe,
sec_PKCS12AuthenticatedSafeTemplate,
sec_pkcs12_wrap_pkcs7_encoder_update,
p12enc->aSafeP7Ecx);
}
if(!p12enc->aSafeEcx) {
rv = SECFailure;
goto loser;
}
SEC_ASN1EncoderSetStreaming(p12enc->aSafeEcx);
SEC_ASN1EncoderSetTakeFromBuf(p12enc->aSafeEcx);
while(p12enc->currentSafe != p12enc->p12exp->safeInfoCount) {
sec_pkcs12_encoder_asafe_process(p12enc);
p12enc->currentSafe++;
}
SEC_ASN1EncoderClearTakeFromBuf(p12enc->aSafeEcx);
SEC_ASN1EncoderClearStreaming(p12enc->aSafeEcx);
SEC_ASN1EncoderUpdate(p12enc->aSafeEcx, ((void *)0), 0);
SEC_ASN1EncoderFinish(p12enc->aSafeEcx);
rv = SEC_PKCS7EncoderFinish(p12enc->aSafeP7Ecx, p12exp->pwfn,
p12exp->pwfnarg);
if(rv != SECSuccess) {
goto loser;
}
SEC_ASN1EncoderClearTakeFromBuf(p12enc->ecx);
SEC_ASN1EncoderClearStreaming(p12enc->ecx);
rv = sec_pkcs12_update_mac(p12enc);
if(rv != SECSuccess) {
goto loser;
}
rv = SEC_ASN1EncoderUpdate(p12enc->ecx, ((void *)0), 0);
SEC_ASN1EncoderFinish(p12enc->ecx);
loser:
return rv;
}
void
SEC_PKCS12DestroyExportContext(SEC_PKCS12ExportContext *p12ecx)
{
int i = 0;
if(!p12ecx) {
return;
}
if(p12ecx->safeInfos) {
i = 0;
while(p12ecx->safeInfos[i] != ((void *)0)) {
if(p12ecx->safeInfos[i]->encryptionKey) {
PK11_FreeSymKey(p12ecx->safeInfos[i]->encryptionKey);
}
if(p12ecx->safeInfos[i]->cinfo) {
SEC_PKCS7DestroyContentInfo(p12ecx->safeInfos[i]->cinfo);
}
i++;
}
}
PORT_FreeArena(p12ecx->arena, 1);
}
struct inPlaceEncodeInfo {
PRBool error;
SECItem outItem;
};
static void
sec_pkcs12_in_place_encoder_output(void *arg, const char *buf, unsigned long len)
{
struct inPlaceEncodeInfo *outInfo = (struct inPlaceEncodeInfo*)arg;
if(!outInfo || !len || outInfo->error) {
return;
}
if(!outInfo->outItem.data) {
outInfo->outItem.data = (unsigned char*)PORT_ZAlloc(len);
outInfo->outItem.len = 0;
} else {
if(!PORT_Realloc(&(outInfo->outItem.data), (outInfo->outItem.len + len))) {
SECITEM_ZfreeItem(&(outInfo->outItem), 0);
outInfo->outItem.data = ((void *)0);
PORT_SetError(SEC_ERROR_NO_MEMORY);
outInfo->error = 1;
return;
}
}
memcpy(&(outInfo->outItem.data[outInfo->outItem.len]), buf, len);
outInfo->outItem.len += len;
return;
}
# 2186 "p12e.c"
SECItem *
SEC_PKCS12ExportCertificateAndKeyUsingPassword(
SECKEYGetPasswordKey pwfn, void *pwfnarg,
CERTCertificate *cert, PK11SlotInfo *slot,
CERTCertDBHandle *certDb, SECItem *pwitem,
PRBool shroudKey, SECOidTag shroudAlg,
PRBool encryptCert, SECOidTag certEncAlg,
SECOidTag integrityAlg, void *wincx)
{
struct inPlaceEncodeInfo outInfo;
SEC_PKCS12ExportContext *p12ecx = ((void *)0);
SEC_PKCS12SafeInfo *keySafe, *certSafe;
SECItem *returnItem = ((void *)0);
if(!cert || !pwitem || !slot) {
return ((void *)0);
}
outInfo.error = 0;
outInfo.outItem.data = ((void *)0);
outInfo.outItem.len = 0;
p12ecx = SEC_PKCS12CreateExportContext(pwfn, pwfnarg, slot, wincx);
if(!p12ecx) {
return ((void *)0);
}
if(encryptCert) {
certSafe = SEC_PKCS12CreatePasswordPrivSafe(p12ecx, pwitem, certEncAlg);
} else {
certSafe = SEC_PKCS12CreateUnencryptedSafe(p12ecx);
}
if(!certSafe) {
goto loser;
}
if(shroudKey) {
keySafe = SEC_PKCS12CreateUnencryptedSafe(p12ecx);
} else {
keySafe = certSafe;
}
if(!keySafe) {
goto loser;
}
if(SEC_PKCS12AddPasswordIntegrity(p12ecx, pwitem, integrityAlg)
!= SECSuccess) {
goto loser;
}
if(SEC_PKCS12AddCertAndKey(p12ecx, certSafe, ((void *)0), cert, certDb,
keySafe, ((void *)0), shroudKey, pwitem, shroudAlg)
!= SECSuccess) {
goto loser;
}
if(SEC_PKCS12Encode(p12ecx, sec_pkcs12_in_place_encoder_output, &outInfo)
!= SECSuccess) {
goto loser;
}
if(outInfo.error) {
goto loser;
}
SEC_PKCS12DestroyExportContext(p12ecx);
returnItem = SECITEM_DupItem(&outInfo.outItem);
SECITEM_ZfreeItem(&outInfo.outItem, 0);
return returnItem;
loser:
if(outInfo.outItem.data) {
SECITEM_ZfreeItem(&(outInfo.outItem), 1);
}
if(p12ecx) {
SEC_PKCS12DestroyExportContext(p12ecx);
}
return ((void *)0);
}