Home | History | Annotate | Download | only in src
      1 // Copyright 2015 The Weave Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef LIBUWEAVE_SRC_MACAROON_CAVEAT_INTERNAL_H_
      6 #define LIBUWEAVE_SRC_MACAROON_CAVEAT_INTERNAL_H_
      7 
      8 #include <stdbool.h>
      9 #include <stddef.h>
     10 #include <stdint.h>
     11 
     12 #include "src/macaroon.h"
     13 #include "src/macaroon_caveat.h"
     14 
     15 bool uw_macaroon_caveat_sign_(const uint8_t* key,
     16                               size_t key_len,
     17                               const UwMacaroonContext* context,
     18                               const UwMacaroonCaveat* caveat,
     19                               uint8_t* mac_tag,
     20                               size_t mac_tag_size);
     21 
     22 typedef struct {
     23   uint32_t issued_time;  // 0 when invalid or not set.
     24 } UwMacaroonValidationState;
     25 
     26 bool uw_macaroon_caveat_init_validation_state_(
     27     UwMacaroonValidationState* state);
     28 
     29 bool uw_macaroon_caveat_validate_(const UwMacaroonCaveat* caveat,
     30                                   const UwMacaroonContext* context,
     31                                   UwMacaroonValidationState* state,
     32                                   UwMacaroonValidationResult* result);
     33 
     34 bool uw_macaroon_caveat_get_value_uint_(const UwMacaroonCaveat* caveat,
     35                                         uint32_t* unsigned_int);
     36 bool uw_macaroon_caveat_get_value_bstr_(const UwMacaroonCaveat* caveat,
     37                                         const uint8_t** str,
     38                                         size_t* str_len);
     39 
     40 #endif  // LIBUWEAVE_SRC_MACAROON_CAVEAT_INTERNAL_H_
     41