SecDbKeychainItemV7.h [plain text]
#import "SecKeybagSupport.h"
#import <Foundation/Foundation.h>
#import <ProtocolBuffer/PBCodable.h>
#import "CheckV12DevEnabled.h"
NS_ASSUME_NONNULL_BEGIN
@interface SecDbKeychainItemV7 : NSObject
@property (nonatomic, readonly) keyclass_t keyclass;
@property (nonatomic, readonly) NSData* backupUUID;
- (nullable instancetype)initWithData:(NSData*)data decryptionKeybag:(keybag_handle_t)decryptionKeybag error:(NSError**)error;
- (instancetype)initWithSecretAttributes:(NSDictionary*)secretAttributes metadataAttributes:(NSDictionary*)metadataAttributes tamperCheck:(NSString*)tamperCheck keyclass:(keyclass_t)keyclass;
- (nullable NSDictionary*)metadataAttributesWithError:(NSError**)error;
- (nullable NSDictionary*)secretAttributesWithAcmContext:(NSData*)acmContext accessControl:(SecAccessControlRef)accessControl callerAccessGroups:(NSArray*)callerAccessGroups error:(NSError**)error;
- (BOOL)deleteWithAcmContext:(NSData*)acmContext accessControl:(SecAccessControlRef)accessControl callerAccessGroups:(NSArray*)callerAccessGroups error:(NSError**)error;
- (nullable NSData*)encryptedBlobWithKeybag:(keybag_handle_t)keybag accessControl:(SecAccessControlRef)accessControl acmContext:(nullable NSData*)acmContext error:(NSError**)error;
@end
extern NSString* const SecDbKeychainErrorDomain;
extern const NSInteger SecDbKeychainErrorDeserializationFailed;
@class SecDbKeychainSerializedMetadata;
@class SecDbKeychainSerializedSecretData;
@interface SecDbKeychainItemV7 (UnitTesting)
+ (bool)isKeychainUnlocked;
@property (readonly) NSData* encryptedMetadataBlob;
@property (readonly) NSData* encryptedSecretDataBlob;
- (BOOL)encryptMetadataWithKeybag:(keybag_handle_t)keybag error:(NSError**)error;
- (BOOL)encryptSecretDataWithKeybag:(keybag_handle_t)keybag accessControl:(SecAccessControlRef)accessControl acmContext:(nullable NSData*)acmContext error:(NSError**)error;
@end
NS_ASSUME_NONNULL_END