TM-SGNL-iOS/SignalServiceKit/Security/OWSRecipientIdentity.h
TeleMessage developers dde0620daf initial commit
2025-05-03 12:28:28 -07:00

94 lines
3.4 KiB
Objective-C

//
// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
#import <SignalServiceKit/BaseModel.h>
NS_ASSUME_NONNULL_BEGIN
typedef NS_CLOSED_ENUM(NSUInteger, OWSVerificationState) {
/// The user hasn't taken an explicit action on this identity key. It's
/// trusted after `defaultUntrustedInterval`.
OWSVerificationStateDefault = 0,
/// The user has explicitly verified this identity key. It's trusted.
OWSVerificationStateVerified = 1,
/// The user has explicitly verified a previous identity key. This one will
/// never be trusted based on elapsed time. The user must mark it as
/// "verified" or "default acknowledged" to trust it.
OWSVerificationStateNoLongerVerified = 2,
/// The user hasn't verified this identity key, but they've explicitly
/// chosen not to, so we don't need to check `defaultUntrustedInterval`.
OWSVerificationStateDefaultAcknowledged = 3,
};
@class SDSAnyWriteTransaction;
@class SSKProtoVerified;
@class SignalServiceAddress;
NSString *OWSVerificationStateToString(OWSVerificationState verificationState);
SSKProtoVerified *_Nullable BuildVerifiedProtoWithAddress(SignalServiceAddress *destinationAddress,
NSData *identityKey,
OWSVerificationState verificationState,
NSUInteger paddingBytesLength);
@interface OWSRecipientIdentity : BaseModel
@property (nonatomic, readonly) NSString *accountId;
@property (nonatomic, readonly) NSData *identityKey;
@property (nonatomic, readonly) NSDate *createdAt;
@property (nonatomic, readonly) BOOL isFirstKnownKey;
#pragma mark - Verification State
@property (atomic, readonly) OWSVerificationState verificationState;
- (void)updateWithVerificationState:(OWSVerificationState)verificationState
transaction:(SDSAnyWriteTransaction *)transaction;
@property (atomic, readonly) BOOL wasIdentityVerified;
#pragma mark - Initializers
+ (instancetype)new NS_UNAVAILABLE;
- (instancetype)init NS_UNAVAILABLE;
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithUniqueId:(NSString *)uniqueId NS_UNAVAILABLE;
- (instancetype)initWithGrdbId:(int64_t)grdbId uniqueId:(NSString *)uniqueId NS_UNAVAILABLE;
- (instancetype)initWithRecipientUniqueId:(NSString *)accountId
identityKey:(NSData *)identityKey
isFirstKnownKey:(BOOL)isFirstKnownKey
createdAt:(NSDate *)createdAt
verificationState:(OWSVerificationState)verificationState NS_DESIGNATED_INITIALIZER;
// --- CODE GENERATION MARKER
// This snippet is generated by /Scripts/sds_codegen/sds_generate.py. Do not manually edit it, instead run
// `sds_codegen.sh`.
// clang-format off
- (instancetype)initWithGrdbId:(int64_t)grdbId
uniqueId:(NSString *)uniqueId
accountId:(NSString *)accountId
createdAt:(NSDate *)createdAt
identityKey:(NSData *)identityKey
isFirstKnownKey:(BOOL)isFirstKnownKey
verificationState:(OWSVerificationState)verificationState
NS_DESIGNATED_INITIALIZER NS_SWIFT_NAME(init(grdbId:uniqueId:accountId:createdAt:identityKey:isFirstKnownKey:verificationState:));
// clang-format on
// --- CODE GENERATION MARKER
#pragma mark - debug
+ (void)printAllIdentities;
@end
NS_ASSUME_NONNULL_END