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 + -
显示快捷键?