base.h
来自「支持SSL v2/v3, TLS, PKCS #5, PKCS #7, PKCS」· C头文件 代码 · 共 1,064 行 · 第 1/2 页
H
1,064 行
PRUint32 error);/* * nss_ClearErrorStack * * This routine clears the calling thread's error stack. */NSS_EXTERN voidnss_ClearErrorStack( void);/* * NSSUTF8 * * nssUTF8_CaseIgnoreMatch * nssUTF8_Duplicate * nssUTF8_Size * nssUTF8_Length * nssUTF8_CopyIntoFixedBuffer *//* * nssUTF8_CaseIgnoreMatch * * Returns true if the two UTF8-encoded strings pointed to by the * two specified NSSUTF8 pointers differ only in typcase. * * The error may be one of the following values: * NSS_ERROR_INVALID_POINTER * * Return value: * PR_TRUE if the strings match, ignoring case * PR_FALSE if they don't * PR_FALSE upon error */NSS_EXTERN PRBoolnssUTF8_CaseIgnoreMatch( const NSSUTF8 *a, const NSSUTF8 *b, PRStatus *statusOpt);/* * nssUTF8_Duplicate * * This routine duplicates the UTF8-encoded string pointed to by the * specified NSSUTF8 pointer. If the optional arenaOpt argument is * not null, the memory required will be obtained from that arena; * otherwise, the memory required will be obtained from the heap. * A pointer to the new string will be returned. In case of error, * an error will be placed on the error stack and NULL will be * returned. * * The error may be one of the following values: * NSS_ERROR_INVALID_POINTER * NSS_ERROR_INVALID_ARENA * NSS_ERROR_NO_MEMORY */NSS_EXTERN NSSUTF8 *nssUTF8_Duplicate( const NSSUTF8 *s, NSSArena *arenaOpt);/* * nssUTF8_PrintableMatch * * Returns true if the two Printable strings pointed to by the * two specified NSSUTF8 pointers match when compared with the * rules for Printable String (leading and trailing spaces are * disregarded, extents of whitespace match irregardless of length, * and case is not significant), then PR_TRUE will be returned. * Otherwise, PR_FALSE will be returned. Upon failure, PR_FALSE * will be returned. If the optional statusOpt argument is not * NULL, then PR_SUCCESS or PR_FAILURE will be stored in that * location. * * The error may be one of the following values: * NSS_ERROR_INVALID_POINTER * * Return value: * PR_TRUE if the strings match, ignoring case * PR_FALSE if they don't * PR_FALSE upon error */NSS_EXTERN PRBoolnssUTF8_PrintableMatch( const NSSUTF8 *a, const NSSUTF8 *b, PRStatus *statusOpt);/* * nssUTF8_Size * * This routine returns the length in bytes (including the terminating * null) of the UTF8-encoded string pointed to by the specified * NSSUTF8 pointer. Zero is returned on error. * * The error may be one of the following values: * NSS_ERROR_INVALID_POINTER * NSS_ERROR_VALUE_TOO_LARGE * * Return value: * nonzero size of the string * 0 on error */NSS_EXTERN PRUint32nssUTF8_Size( const NSSUTF8 *s, PRStatus *statusOpt);extern const NSSError NSS_ERROR_INVALID_POINTER;extern const NSSError NSS_ERROR_VALUE_TOO_LARGE;/* * nssUTF8_Length * * This routine returns the length in characters (not including the * terminating null) of the UTF8-encoded string pointed to by the * specified NSSUTF8 pointer. * * The error may be one of the following values: * NSS_ERROR_INVALID_POINTER * NSS_ERROR_VALUE_TOO_LARGE * NSS_ERROR_INVALID_STRING * * Return value: * length of the string (which may be zero) * 0 on error */NSS_EXTERN PRUint32nssUTF8_Length( const NSSUTF8 *s, PRStatus *statusOpt);extern const NSSError NSS_ERROR_INVALID_POINTER;extern const NSSError NSS_ERROR_VALUE_TOO_LARGE;extern const NSSError NSS_ERROR_INVALID_STRING;/* * nssUTF8_Create * * This routine creates a UTF8 string from a string in some other * format. Some types of string may include embedded null characters, * so for them the length parameter must be used. For string types * that are null-terminated, the length parameter is optional; if it * is zero, it will be ignored. If the optional arena argument is * non-null, the memory used for the new string will be obtained from * that arena, otherwise it will be obtained from the heap. This * routine may return NULL upon error, in which case it will have * placed an error on the error stack. * * The error may be one of the following: * NSS_ERROR_INVALID_POINTER * NSS_ERROR_NO_MEMORY * NSS_ERROR_UNSUPPORTED_TYPE * * Return value: * NULL upon error * A non-null pointer to a new UTF8 string otherwise */NSS_EXTERN NSSUTF8 *nssUTF8_Create( NSSArena *arenaOpt, nssStringType type, const void *inputString, PRUint32 size /* in bytes, not characters */);extern const NSSError NSS_ERROR_INVALID_POINTER;extern const NSSError NSS_ERROR_NO_MEMORY;extern const NSSError NSS_ERROR_UNSUPPORTED_TYPE;NSS_EXTERN NSSItem *nssUTF8_GetEncoding( NSSArena *arenaOpt, NSSItem *rvOpt, nssStringType type, NSSUTF8 *string);/* * nssUTF8_CopyIntoFixedBuffer * * This will copy a UTF8 string into a fixed-length buffer, making * sure that the all characters are valid. Any remaining space will * be padded with the specified ASCII character, typically either * null or space. * * Blah, blah, blah. */extern const NSSError NSS_ERROR_INVALID_POINTER;extern const NSSError NSS_ERROR_INVALID_ARGUMENT;NSS_EXTERN PRStatusnssUTF8_CopyIntoFixedBuffer( NSSUTF8 *string, char *buffer, PRUint32 bufferSize, char pad);/* * nssUTF8_Equal * */NSS_EXTERN PRBoolnssUTF8_Equal( const NSSUTF8 *a, const NSSUTF8 *b, PRStatus *statusOpt);/* * nssPointerTracker * * This type and these methods are only present in debug builds. * * The nonpublic methods relating to this type are: * * nssPointerTracker_initialize * nssPointerTracker_finalize * nssPointerTracker_add * nssPointerTracker_remove * nssPointerTracker_verify *//* * nssPointerTracker_initialize * * This method is only present in debug builds. * * This routine initializes an nssPointerTracker object. Note that * the object must have been declared *static* to guarantee that it * is in a zeroed state initially. This routine is idempotent, and * may even be safely called by multiple threads simultaneously with * the same argument. This routine returns a PRStatus value; if * successful, it will return PR_SUCCESS. On failure it will set an * error on the error stack and return PR_FAILURE. * * The error may be one of the following values: * NSS_ERROR_NO_MEMORY * * Return value: * PR_SUCCESS * PR_FAILURE */#ifdef DEBUGNSS_EXTERN PRStatusnssPointerTracker_initialize( nssPointerTracker *tracker);extern const NSSError NSS_ERROR_NO_MEMORY;#endif /* DEBUG *//* * nssPointerTracker_finalize * * This method is only present in debug builds. * * This routine returns the nssPointerTracker object to the pre- * initialized state, releasing all resources used by the object. * It will *NOT* destroy the objects being tracked by the pointer * (should any remain), and therefore cannot be used to "sweep up" * remaining objects. This routine returns a PRStatus value; if * successful, it will return PR_SUCCES. On failure it will set an * error on the error stack and return PR_FAILURE. If any objects * remain in the tracker when it is finalized, that will be treated * as an error. * * The error may be one of the following values: * NSS_ERROR_TRACKER_NOT_EMPTY * * Return value: * PR_SUCCESS * PR_FAILURE */#ifdef DEBUGNSS_EXTERN PRStatusnssPointerTracker_finalize( nssPointerTracker *tracker);extern const NSSError NSS_ERROR_TRACKER_NOT_EMPTY;#endif /* DEBUG *//* * nssPointerTracker_add * * This method is only present in debug builds. * * This routine adds the specified pointer to the nssPointerTracker * object. It should be called in constructor objects to register * new valid objects. The nssPointerTracker is threadsafe, but this * call is not idempotent. This routine returns a PRStatus value; * if successful it will return PR_SUCCESS. On failure it will set * an error on the error stack and return PR_FAILURE. * * The error may be one of the following values: * NSS_ERROR_NO_MEMORY * NSS_ERROR_TRACKER_NOT_INITIALIZED * NSS_ERROR_DUPLICATE_POINTER * * Return value: * PR_SUCCESS * PR_FAILURE */#ifdef DEBUGNSS_EXTERN PRStatusnssPointerTracker_add( nssPointerTracker *tracker, const void *pointer);extern const NSSError NSS_ERROR_NO_MEMORY;extern const NSSError NSS_ERROR_TRACKER_NOT_INITIALIZED;extern const NSSError NSS_ERROR_DUPLICATE_POINTER;#endif /* DEBUG *//* * nssPointerTracker_remove * * This method is only present in debug builds. * * This routine removes the specified pointer from the * nssPointerTracker object. It does not call any destructor for the * object; rather, this should be called from the object's destructor. * The nssPointerTracker is threadsafe, but this call is not * idempotent. This routine returns a PRStatus value; if successful * it will return PR_SUCCESS. On failure it will set an error on the * error stack and return PR_FAILURE. * * The error may be one of the following values: * NSS_ERROR_TRACKER_NOT_INITIALIZED * NSS_ERROR_POINTER_NOT_REGISTERED * * Return value: * PR_SUCCESS * PR_FAILURE */#ifdef DEBUGNSS_EXTERN PRStatusnssPointerTracker_remove( nssPointerTracker *tracker, const void *pointer);extern const NSSError NSS_ERROR_TRACKER_NOT_INITIALIZED;extern const NSSError NSS_ERROR_POINTER_NOT_REGISTERED;#endif /* DEBUG *//* * nssPointerTracker_verify * * This method is only present in debug builds. * * This routine verifies that the specified pointer has been registered * with the nssPointerTracker object. The nssPointerTracker object is * threadsafe, and this call may be safely called from multiple threads * simultaneously with the same arguments. This routine returns a * PRStatus value; if the pointer is registered this will return * PR_SUCCESS. Otherwise it will set an error on the error stack and * return PR_FAILURE. Although the error is suitable for leaving on * the stack, callers may wish to augment the information available by * placing a more type-specific error on the stack. * * The error may be one of the following values: * NSS_ERROR_POINTER_NOT_REGISTERED * * Return value: * PR_SUCCESS * PR_FAILRUE */#ifdef DEBUGNSS_EXTERN PRStatusnssPointerTracker_verify( nssPointerTracker *tracker, const void *pointer);extern const NSSError NSS_ERROR_POINTER_NOT_REGISTERED;#endif /* DEBUG *//* * libc * * nsslibc_memcpy * nsslibc_memset * nsslibc_offsetof *//* * nsslibc_memcpy * * Errors: * NSS_ERROR_INVALID_POINTER * * Return value: * NULL on error * The destination pointer on success */NSS_EXTERN void *nsslibc_memcpy( void *dest, const void *source, PRUint32 n);extern const NSSError NSS_ERROR_INVALID_POINTER;/* * nsslibc_memset * * Errors: * NSS_ERROR_INVALID_POINTER * * Return value: * NULL on error * The destination pointer on success */NSS_EXTERN void *nsslibc_memset( void *dest, PRUint8 byte, PRUint32 n);extern const NSSError NSS_ERROR_INVALID_POINTER;/* * nsslibc_memequal * * Errors: * NSS_ERROR_INVALID_POINTER * * Return value: * PR_TRUE if they match * PR_FALSE if they don't * PR_FALSE upon error */NSS_EXTERN PRBoolnsslibc_memequal( const void *a, const void *b, PRUint32 len, PRStatus *statusOpt);extern const NSSError NSS_ERROR_INVALID_POINTER;#define nsslibc_offsetof(str, memb) ((PRPtrdiff)(&(((str *)0)->memb)))/* * nss_NewThreadPrivateIndex * */NSS_EXTERN PRStatusnss_NewThreadPrivateIndex( PRUintn *ip);/* * nss_GetThreadPrivate * */NSS_EXTERN void *nss_GetThreadPrivate( PRUintn i);/* * nss_SetThreadPrivate * */NSS_EXTERN voidnss_SetThreadPrivate( PRUintn i, void *v);PR_END_EXTERN_C#endif /* BASE_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?