g10: On a TOFU conflict, write the conflicting keys to the status fd
[gnupg.git] / g10 / tofu.h
index b9826c9..7b1beea 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G10_TOFU_H
@@ -78,13 +78,24 @@ int tofu_policy_to_trust_level (enum tofu_policy policy);
    data came from, e.g., "email:claws" (default: "unknown").  Note:
    this function does not interact with the user, If there is a
    conflict, or if the binding's policy is ask, the actual interaction
-   is deferred until tofu_get_validity is called..  Set the string
+   is deferred until tofu_get_validity is called.  Set the string
    list FLAG to indicate that a specified user id is expired.  This
    function returns 0 on success and an error code on failure.  */
-gpg_error_t tofu_register (ctrl_t ctrl, PKT_public_key *pk,
-                           strlist_t user_id_list,
-                           const byte *sigs_digest, int sigs_digest_len,
-                           time_t sig_time, const char *origin);
+gpg_error_t tofu_register_signature (ctrl_t ctrl, PKT_public_key *pk,
+                                     strlist_t user_id_list,
+                                     const byte *sigs_digest,
+                                     int sigs_digest_len,
+                                     time_t sig_time, const char *origin);
+
+/* Note that an encrypted mail was sent to <PK, USER_ID>, for each
+   USER_ID in USER_ID_LIST.  (If USER_ID_LIST is NULL, then all
+   non-revoked user ids associated with PK are used.)  If MAY_ASK is
+   set, then may interact with the user to resolve a TOFU
+   conflict.  */
+gpg_error_t tofu_register_encryption (ctrl_t ctrl,
+                                      PKT_public_key *pk,
+                                      strlist_t user_id_list,
+                                      int may_ask);
 
 /* Combine a trust level returned from the TOFU trust model with a
    trust level returned by the PGP trust model.  This is primarily of
@@ -109,11 +120,6 @@ int tofu_get_validity (ctrl_t ctrl,
    POLICY.  */
 gpg_error_t tofu_set_policy (ctrl_t ctrl, kbnode_t kb, enum tofu_policy policy);
 
-/* Set the TOFU policy for all non-revoked users in the key with the
-   key id KEYID to POLICY.  */
-gpg_error_t tofu_set_policy_by_keyid (ctrl_t ctrl,
-                                      u32 *keyid, enum tofu_policy policy);
-
 /* Return the TOFU policy for the specified binding in *POLICY.  */
 gpg_error_t tofu_get_policy (ctrl_t ctrl,
                              PKT_public_key *pk, PKT_user_id *user_id,
@@ -128,4 +134,9 @@ void tofu_end_batch_update (ctrl_t ctrl);
 /* Release all of the resources associated with a DB meta-handle.  */
 void tofu_closedbs (ctrl_t ctrl);
 
+/* Whenever a key is modified (e.g., a user id is added or revoked, a
+ * new signature, etc.), this function should be called to cause TOFU
+ * to update its world view.  */
+gpg_error_t tofu_notice_key_changed (ctrl_t ctrl, kbnode_t kb);
+
 #endif /*G10_TOFU_H*/