src/key_reset.h
author Krista Bennett <krista@pep-project.org>
Fri, 14 Sep 2018 20:18:53 +0200
branchENGINE-398
changeset 2947 4b525ec0f95c
child 2948 3f66f366dc5f
permissions -rw-r--r--
ENGINE-398: Moved key_reset into its own files
krista@2947
     1
// This file is under GNU General Public License 3.0
krista@2947
     2
// see LICENSE.txt
krista@2947
     3
krista@2947
     4
#pragma once
krista@2947
     5
krista@2947
     6
#include "key_reset.h"
krista@2947
     7
krista@2947
     8
#include "pEpEngine.h"
krista@2947
     9
#include "keymanagement.h"
krista@2947
    10
#include "message.h"
krista@2947
    11
#include "message_api.h"
krista@2947
    12
#include "cryptotech.h"
krista@2947
    13
krista@2947
    14
#ifdef __cplusplus
krista@2947
    15
extern "C" {
krista@2947
    16
#endif
krista@2947
    17
krista@2947
    18
// FIXME: Proper docs!
krista@2947
    19
//  Algorithm:
krista@2947
    20
// 
krista@2947
    21
//     Key Reset trigger; either manually or in another protocol, parameter key (optional)
krista@2947
    22
// 
krista@2947
    23
//     if identity given:
krista@2947
    24
// 
krista@2947
    25
//     key reset for one identity
krista@2947
    26
// 
krista@2947
    27
//     else
krista@2947
    28
// 
krista@2947
    29
//     For identity in own identities
krista@2947
    30
// 
krista@2947
    31
//     key reset for one identitiy
krista@2947
    32
// 
krista@2947
    33
//     Key Reset for identity:
krista@2947
    34
// 
krista@2947
    35
//     if own identity:
krista@2947
    36
// 
krista@2947
    37
//     Create revocation
krista@2947
    38
// 
krista@2947
    39
//     add to revocation list
krista@2947
    40
// 
krista@2947
    41
//     mistrust fpr from trust
krista@2947
    42
// 
krista@2947
    43
//     Remove fpr from ALL identities
krista@2947
    44
// 
krista@2947
    45
//     Remove fpr from ALL users
krista@2947
    46
// 
krista@2947
    47
//     generate new key
krista@2947
    48
// 
krista@2947
    49
//     for all active communication partners:
krista@2947
    50
// 
krista@2947
    51
//     active_send revocation
krista@2947
    52
// 
krista@2947
    53
//     else
krista@2947
    54
// 
krista@2947
    55
//     remove fpr from all identities
krista@2947
    56
// 
krista@2947
    57
//     remove fpr from all users
krista@2947
    58
// 
krista@2947
    59
//     delete key from key ring
krista@2947
    60
DYNAMIC_API PEP_STATUS key_reset(
krista@2947
    61
        PEP_SESSION session,
krista@2947
    62
        const char* fpr,
krista@2947
    63
        pEp_identity* ident
krista@2947
    64
    );
krista@2947
    65
krista@2947
    66
PEP_STATUS has_key_reset_been_sent(
krista@2947
    67
        PEP_SESSION session, 
krista@2947
    68
        const char* user_id, 
krista@2947
    69
        const char* revoked_fpr,
krista@2947
    70
        bool* contacted);
krista@2947
    71
krista@2947
    72
PEP_STATUS set_reset_contact_notified(
krista@2947
    73
        PEP_SESSION session,
krista@2947
    74
        const char* revoke_fpr,
krista@2947
    75
        const char* contact_id
krista@2947
    76
    );
krista@2947
    77
krista@2947
    78
PEP_STATUS receive_key_reset(PEP_SESSION session,
krista@2947
    79
                             message* reset_msg);
krista@2947
    80
krista@2947
    81
PEP_STATUS create_standalone_key_reset_message(PEP_SESSION session,
krista@2947
    82
                                               message** dst, 
krista@2947
    83
                                               pEp_identity* recip,
krista@2947
    84
                                               const char* old_fpr,
krista@2947
    85
                                               const char* new_fpr);
krista@2947
    86
                                               
krista@2947
    87
PEP_STATUS send_key_reset_to_recents(PEP_SESSION session,
krista@2947
    88
                                     const char* old_fpr, 
krista@2947
    89
                                     const char* new_fpr);
krista@2947
    90
    
krista@2947
    91
#ifdef __cplusplus
krista@2947
    92
}
krista@2947
    93
#endif