| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 /* |  | 
| 2  * key.h |  | 
| 3  * |  | 
| 4  * key usage limits enforcement |  | 
| 5  * |  | 
| 6  * David A. Mcgrew |  | 
| 7  * Cisco Systems, Inc. |  | 
| 8  */ |  | 
| 9 /* |  | 
| 10  * |  | 
| 11  * Copyright (c) 2001-2006 Cisco Systems, Inc. |  | 
| 12  * All rights reserved. |  | 
| 13  * |  | 
| 14  * Redistribution and use in source and binary forms, with or without |  | 
| 15  * modification, are permitted provided that the following conditions |  | 
| 16  * are met: |  | 
| 17  * |  | 
| 18  *   Redistributions of source code must retain the above copyright |  | 
| 19  *   notice, this list of conditions and the following disclaimer. |  | 
| 20  * |  | 
| 21  *   Redistributions in binary form must reproduce the above |  | 
| 22  *   copyright notice, this list of conditions and the following |  | 
| 23  *   disclaimer in the documentation and/or other materials provided |  | 
| 24  *   with the distribution. |  | 
| 25  * |  | 
| 26  *   Neither the name of the Cisco Systems, Inc. nor the names of its |  | 
| 27  *   contributors may be used to endorse or promote products derived |  | 
| 28  *   from this software without specific prior written permission. |  | 
| 29  * |  | 
| 30  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | 
| 31  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | 
| 32  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |  | 
| 33  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |  | 
| 34  * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |  | 
| 35  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |  | 
| 36  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |  | 
| 37  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |  | 
| 38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |  | 
| 39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |  | 
| 40  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |  | 
| 41  * OF THE POSSIBILITY OF SUCH DAMAGE. |  | 
| 42  * |  | 
| 43  */ |  | 
| 44 |  | 
| 45 #ifndef KEY_H |  | 
| 46 #define KEY_H |  | 
| 47 |  | 
| 48 #include "rdbx.h"   /* for xtd_seq_num_t */ |  | 
| 49 #include "err.h" |  | 
| 50 |  | 
| 51 typedef struct key_limit_ctx_t *key_limit_t; |  | 
| 52 |  | 
| 53 typedef enum { |  | 
| 54    key_event_normal, |  | 
| 55    key_event_soft_limit, |  | 
| 56    key_event_hard_limit |  | 
| 57 } key_event_t; |  | 
| 58 |  | 
| 59 err_status_t |  | 
| 60 key_limit_set(key_limit_t key, const xtd_seq_num_t s); |  | 
| 61 |  | 
| 62 err_status_t |  | 
| 63 key_limit_clone(key_limit_t original, key_limit_t *new_key); |  | 
| 64 |  | 
| 65 err_status_t |  | 
| 66 key_limit_check(const key_limit_t key); |  | 
| 67 |  | 
| 68 key_event_t |  | 
| 69 key_limit_update(key_limit_t key); |  | 
| 70 |  | 
| 71 typedef enum { |  | 
| 72    key_state_normal, |  | 
| 73    key_state_past_soft_limit, |  | 
| 74    key_state_expired |  | 
| 75 } key_state_t; |  | 
| 76 |  | 
| 77 typedef struct key_limit_ctx_t { |  | 
| 78   xtd_seq_num_t num_left; |  | 
| 79   key_state_t   state; |  | 
| 80 } key_limit_ctx_t; |  | 
| 81 |  | 
| 82 #endif /* KEY_H */ |  | 
| OLD | NEW | 
|---|