anastasis

Credential backup and recovery protocol and service
Log | Files | Refs | Submodules | README | LICENSE

anastasis_database_lib.h (3945B)


      1 /*
      2   This file is part of Anastasis
      3   Copyright (C) 2019-2022 Anastasis SARL
      4 
      5   Anastasis is free software; you can redistribute it and/or modify it under the
      6   terms of the GNU Affero General Public License as published by the Free Software
      7   Foundation; either version 3, or (at your option) any later version.
      8 
      9   Anastasis is distributed in the hope that it will be useful, but WITHOUT ANY
     10   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     11   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more details.
     12 
     13   You should have received a copy of the GNU Affero General Public License along with
     14   Anastasis; see the file COPYING.GPL.  If not, see <http://www.gnu.org/licenses/>
     15 */
     16 /**
     17  * @file include/anastasis_database_lib.h
     18  * @brief Anastasis database library interface
     19  * @author Dominik Meister
     20  * @author Dennis Neufeld
     21  * @author Christian Grothoff
     22  */
     23 #ifndef ANASTASIS_DB_LIB_H
     24 #define ANASTASIS_DB_LIB_H
     25 
     26 #include "anastasis_service.h"
     27 #include <gnunet/gnunet_db_lib.h>
     28 #include "anastasis/anastasis-database/common.h"
     29 #include "anastasis/anastasis-database/preflight.h"
     30 #include "anastasis/anastasis-database/transaction.h"
     31 #include "anastasis/anastasis-database/event.h"
     32 #include "anastasis/anastasis-database/create_tables.h"
     33 #include "anastasis/anastasis-database/drop_tables.h"
     34 #include "anastasis/anastasis-database/do_gc.h"
     35 #include "anastasis/anastasis-database/do_insert_recovery_document.h"
     36 #include "anastasis/anastasis-database/iterate_recovery_meta_data.h"
     37 #include "anastasis/anastasis-database/get_recovery_document.h"
     38 #include "anastasis/anastasis-database/get_latest_recovery_document.h"
     39 #include "anastasis/anastasis-database/insert_truth.h"
     40 #include "anastasis/anastasis-database/get_truth.h"
     41 #include "anastasis/anastasis-database/get_truth_key_share.h"
     42 #include "anastasis/anastasis-database/get_account.h"
     43 #include "anastasis/anastasis-database/get_recdoc_payment.h"
     44 #include "anastasis/anastasis-database/get_challenge_payment.h"
     45 #include "anastasis/anastasis-database/do_update_account_lifetime.h"
     46 #include "anastasis/anastasis-database/do_insert_recdoc_payment.h"
     47 #include "anastasis/anastasis-database/insert_truth_payment.h"
     48 #include "anastasis/anastasis-database/get_truth_payment.h"
     49 #include "anastasis/anastasis-database/do_verify_challenge_code.h"
     50 #include "anastasis/anastasis-database/update_to_challenge_code_satisfied.h"
     51 #include "anastasis/anastasis-database/update_totp_counter.h"
     52 #include "anastasis/anastasis-database/get_exists_challenge_code_satisfied.h"
     53 #include "anastasis/anastasis-database/insert_challenge_code.h"
     54 #include "anastasis/anastasis-database/update_to_challenge_code_sent.h"
     55 #include "anastasis/anastasis-database/insert_challenge_payment.h"
     56 #include "anastasis/anastasis-database/update_to_challenge_payment_refunded.h"
     57 #include "anastasis/anastasis-database/get_pending_challenge_payment.h"
     58 #include "anastasis/anastasis-database/update_to_challenge_payment_paid.h"
     59 #include "anastasis/anastasis-database/insert_auth_iban_in.h"
     60 #include "anastasis/anastasis-database/iterate_auth_iban_transfers.h"
     61 #include "anastasis/anastasis-database/get_last_auth_iban_in_row.h"
     62 
     63 
     64 /**
     65  * Initialize the Anastasis database subsystem.
     66  *
     67  * @param cfg configuration to use
     68  * @return #GNUNET_OK on success, #GNUNET_SYSERR on failure
     69  */
     70 enum GNUNET_GenericReturnValue
     71 ANASTASIS_DB_init (
     72   const struct GNUNET_CONFIGURATION_Handle *cfg);
     73 
     74 
     75 /**
     76  * Initialize the Anastasis database subsystem for administration.
     77  * Disables the check that the database schema is current.
     78  *
     79  * @param cfg configuration to use
     80  * @return #GNUNET_OK on success, #GNUNET_SYSERR on failure
     81  */
     82 enum GNUNET_GenericReturnValue
     83 ANASTASIS_DB_init_admin (
     84   const struct GNUNET_CONFIGURATION_Handle *cfg);
     85 
     86 
     87 /**
     88  * Shutdown the Anastasis database subsystem.
     89  */
     90 void
     91 ANASTASIS_DB_fini (void);
     92 
     93 
     94 #endif  /* ANASTASIS_DB_LIB_H */
     95 
     96 /* end of anastasis_database_lib.h */