# 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); }