// This file was automatically generated by protocompiler
// DO NOT EDIT!
// Compiled from SecDbBackupRecoverySet.proto

#import <Foundation/Foundation.h>
#import <ProtocolBuffer/PBCodable.h>

#ifdef __cplusplus
#define SECDBBACKUPKEYCLASSSIGNINGKEY_FUNCTION extern "C"
#else
#define SECDBBACKUPKEYCLASSSIGNINGKEY_FUNCTION extern
#endif

/** Insert into backupkeyclasssigningkeys table, v12_keyClassSigningKey column */
@interface SecDbBackupKeyClassSigningKey : PBCodable <NSCopying>
{
    NSData *_aksRefKey;
    NSData *_aksWrappedKey;
    NSData *_backupWrappedKey;
    int32_t _keyClass;
    NSData *_publicKey;
    struct {
        int keyClass:1;
    } _has;
}


@property (nonatomic) BOOL hasKeyClass;
@property (nonatomic) int32_t keyClass;

@property (nonatomic, readonly) BOOL hasPublicKey;
@property (nonatomic, retain) NSData *publicKey;

@property (nonatomic, readonly) BOOL hasAksRefKey;
/** Contains bag identity as authenticated data */
@property (nonatomic, retain) NSData *aksRefKey;

@property (nonatomic, readonly) BOOL hasAksWrappedKey;
/** SFECIESKeyPair wrapped by AKS ref key */
@property (nonatomic, retain) NSData *aksWrappedKey;

@property (nonatomic, readonly) BOOL hasBackupWrappedKey;
/** SFECIESKeyPair wrapped by KCSKSecret in RecoverySet. Also authenticates bag identity */
@property (nonatomic, retain) NSData *backupWrappedKey;

// Performs a shallow copy into other
- (void)copyTo:(SecDbBackupKeyClassSigningKey *)other;

// Performs a deep merge from other into self
// If set in other, singular values in self are replaced in self
// Singular composite values are recursively merged
// Repeated values from other are appended to repeated values in self
- (void)mergeFrom:(SecDbBackupKeyClassSigningKey *)other;

SECDBBACKUPKEYCLASSSIGNINGKEY_FUNCTION BOOL SecDbBackupKeyClassSigningKeyReadFrom(__unsafe_unretained SecDbBackupKeyClassSigningKey *self, __unsafe_unretained PBDataReader *reader);

@end

