security/nss/lib/ckfw/dbm/ckdbm.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 #ifndef CKDBM_H
     6 #define CKDBM_H
     8 #include "nssckmdt.h"
     9 #include "nssckfw.h"
    11 /*
    12  * I'm including this for access to the arena functions.
    13  * Looks like we should publish that API.
    14  */
    15 #ifndef BASE_H
    16 #include "base.h"
    17 #endif /* BASE_H */
    19 /*
    20  * This is where the Netscape extensions live, at least for now.
    21  */
    22 #ifndef CKT_H
    23 #include "ckt.h"
    24 #endif /* CKT_H */
    26 #include "mcom_db.h"
    28 NSS_EXTERN_DATA NSSCKMDInstance nss_dbm_mdInstance;
    30 typedef struct nss_dbm_db_struct nss_dbm_db_t;
    31 struct nss_dbm_db_struct {
    32   DB *db;
    33   NSSCKFWMutex *crustylock;
    34 };
    36 typedef struct nss_dbm_dbt_struct nss_dbm_dbt_t;
    37 struct nss_dbm_dbt_struct {
    38   DBT dbt;
    39   nss_dbm_db_t *my_db;
    40 };
    42 typedef struct nss_dbm_instance_struct nss_dbm_instance_t;
    43 struct nss_dbm_instance_struct {
    44   NSSArena *arena;
    45   CK_ULONG nSlots;
    46   char **filenames;
    47   int *flags; /* e.g. O_RDONLY, O_RDWR */
    48 };
    50 typedef struct nss_dbm_slot_struct nss_dbm_slot_t;
    51 struct nss_dbm_slot_struct {
    52   nss_dbm_instance_t *instance;
    53   char *filename;
    54   int flags;
    55   nss_dbm_db_t *token_db;
    56 };
    58 typedef struct nss_dbm_token_struct nss_dbm_token_t;
    59 struct nss_dbm_token_struct {
    60   NSSArena *arena;
    61   nss_dbm_slot_t *slot;
    62   nss_dbm_db_t *session_db;
    63   NSSUTF8 *label;
    64 };
    66 struct nss_dbm_dbt_node {
    67   struct nss_dbm_dbt_node *next;
    68   nss_dbm_dbt_t *dbt;
    69 };
    71 typedef struct nss_dbm_session_struct nss_dbm_session_t;
    72 struct nss_dbm_session_struct {
    73   NSSArena *arena;
    74   nss_dbm_token_t *token;
    75   CK_ULONG deviceError;
    76   struct nss_dbm_dbt_node *session_objects;
    77   NSSCKFWMutex *list_lock;
    78 };
    80 typedef struct nss_dbm_object_struct nss_dbm_object_t;
    81 struct nss_dbm_object_struct {
    82   NSSArena *arena; /* token or session */
    83   nss_dbm_dbt_t *handle;
    84 };
    86 typedef struct nss_dbm_find_struct nss_dbm_find_t;
    87 struct nss_dbm_find_struct {
    88   NSSArena *arena;
    89   struct nss_dbm_dbt_node *found;
    90   NSSCKFWMutex *list_lock;
    91 };
    93 NSS_EXTERN NSSCKMDSlot *
    94 nss_dbm_mdSlot_factory
    95 (
    96   nss_dbm_instance_t *instance,
    97   char *filename,
    98   int flags,
    99   CK_RV *pError
   100 );
   102 NSS_EXTERN NSSCKMDToken *
   103 nss_dbm_mdToken_factory
   104 (
   105   nss_dbm_slot_t *slot,
   106   CK_RV *pError
   107 );
   109 NSS_EXTERN NSSCKMDSession *
   110 nss_dbm_mdSession_factory
   111 (
   112   nss_dbm_token_t *token,
   113   NSSCKFWSession *fwSession,
   114   NSSCKFWInstance *fwInstance,
   115   CK_BBOOL rw,
   116   CK_RV *pError
   117 );
   119 NSS_EXTERN NSSCKMDObject *
   120 nss_dbm_mdObject_factory
   121 (
   122   nss_dbm_object_t *object,
   123   CK_RV *pError
   124 );
   126 NSS_EXTERN NSSCKMDFindObjects *
   127 nss_dbm_mdFindObjects_factory
   128 (
   129   nss_dbm_find_t *find,
   130   CK_RV *pError
   131 );
   133 NSS_EXTERN nss_dbm_db_t *
   134 nss_dbm_db_open
   135 (
   136   NSSArena *arena,
   137   NSSCKFWInstance *fwInstance,
   138   char *filename,
   139   int flags,
   140   CK_RV *pError
   141 );
   143 NSS_EXTERN void
   144 nss_dbm_db_close
   145 (
   146   nss_dbm_db_t *db
   147 );
   149 NSS_EXTERN CK_VERSION
   150 nss_dbm_db_get_format_version
   151 (
   152   nss_dbm_db_t *db
   153 );
   155 NSS_EXTERN CK_RV
   156 nss_dbm_db_set_label
   157 (
   158   nss_dbm_db_t *db,
   159   NSSUTF8 *label
   160 );
   162 NSS_EXTERN NSSUTF8 *
   163 nss_dbm_db_get_label
   164 (
   165   nss_dbm_db_t *db,
   166   NSSArena *arena,
   167   CK_RV *pError
   168 );
   170 NSS_EXTERN CK_RV
   171 nss_dbm_db_delete_object
   172 (
   173   nss_dbm_dbt_t *dbt
   174 );
   176 NSS_EXTERN nss_dbm_dbt_t *
   177 nss_dbm_db_create_object
   178 (
   179   NSSArena *arena,
   180   nss_dbm_db_t *db,
   181   CK_ATTRIBUTE_PTR pTemplate,
   182   CK_ULONG ulAttributeCount,
   183   CK_RV *pError,
   184   CK_ULONG *pdbrv
   185 );
   187 NSS_EXTERN CK_RV
   188 nss_dbm_db_find_objects
   189 (
   190   nss_dbm_find_t *find,
   191   nss_dbm_db_t *db,
   192   CK_ATTRIBUTE_PTR pTemplate,
   193   CK_ULONG ulAttributeCount,
   194   CK_ULONG *pdbrv
   195 );
   197 NSS_EXTERN CK_BBOOL
   198 nss_dbm_db_object_still_exists
   199 (
   200   nss_dbm_dbt_t *dbt
   201 );
   203 NSS_EXTERN CK_ULONG
   204 nss_dbm_db_get_object_attribute_count
   205 (
   206   nss_dbm_dbt_t *dbt,
   207   CK_RV *pError,
   208   CK_ULONG *pdbrv
   209 );
   211 NSS_EXTERN CK_RV
   212 nss_dbm_db_get_object_attribute_types
   213 (
   214   nss_dbm_dbt_t *dbt,
   215   CK_ATTRIBUTE_TYPE_PTR typeArray,
   216   CK_ULONG ulCount,
   217   CK_ULONG *pdbrv
   218 );
   220 NSS_EXTERN CK_ULONG
   221 nss_dbm_db_get_object_attribute_size
   222 (
   223   nss_dbm_dbt_t *dbt,
   224   CK_ATTRIBUTE_TYPE type,
   225   CK_RV *pError,
   226   CK_ULONG *pdbrv
   227 );
   229 NSS_EXTERN NSSItem *
   230 nss_dbm_db_get_object_attribute
   231 (
   232   nss_dbm_dbt_t *dbt,
   233   NSSArena *arena,
   234   CK_ATTRIBUTE_TYPE type,
   235   CK_RV *pError,
   236   CK_ULONG *pdbrv
   237 );
   239 NSS_EXTERN CK_RV
   240 nss_dbm_db_set_object_attribute
   241 (
   242   nss_dbm_dbt_t *dbt,
   243   CK_ATTRIBUTE_TYPE type,
   244   NSSItem *value,
   245   CK_ULONG *pdbrv
   246 );
   248 #endif /* CKDBM_H */

mercurial