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

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

typedef NS_ENUM(int32_t, SecDbKeychainSerializedItemV7_Keyclass) {
    SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_AK = 6,
    SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_CK = 7,
    SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_DK = 8,
    SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_AKU = 9,
    SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_CKU = 10,
    SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_DKU = 11,
    SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_AKPU = 12,
};
#ifdef __OBJC__
NS_INLINE NSString *SecDbKeychainSerializedItemV7_KeyclassAsString(SecDbKeychainSerializedItemV7_Keyclass value)
{
    switch (value)
    {
        case SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_AK: return @"KEYCLASS_AK";
        case SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_CK: return @"KEYCLASS_CK";
        case SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_DK: return @"KEYCLASS_DK";
        case SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_AKU: return @"KEYCLASS_AKU";
        case SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_CKU: return @"KEYCLASS_CKU";
        case SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_DKU: return @"KEYCLASS_DKU";
        case SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_AKPU: return @"KEYCLASS_AKPU";
        default: return [NSString stringWithFormat:@"(unknown: %i)", value];
    }
}
#endif /* __OBJC__ */
#ifdef __OBJC__
NS_INLINE SecDbKeychainSerializedItemV7_Keyclass StringAsSecDbKeychainSerializedItemV7_Keyclass(NSString *value)
{
    if ([value isEqualToString:@"KEYCLASS_AK"]) return SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_AK;
    if ([value isEqualToString:@"KEYCLASS_CK"]) return SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_CK;
    if ([value isEqualToString:@"KEYCLASS_DK"]) return SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_DK;
    if ([value isEqualToString:@"KEYCLASS_AKU"]) return SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_AKU;
    if ([value isEqualToString:@"KEYCLASS_CKU"]) return SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_CKU;
    if ([value isEqualToString:@"KEYCLASS_DKU"]) return SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_DKU;
    if ([value isEqualToString:@"KEYCLASS_AKPU"]) return SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_AKPU;
    return SecDbKeychainSerializedItemV7_Keyclass_KEYCLASS_AK;
}
#endif /* __OBJC__ */

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

@interface SecDbKeychainSerializedItemV7 : PBCodable <NSCopying>
{
    NSData *_encryptedMetadata;
    NSData *_encryptedSecretData;
    SecDbKeychainSerializedItemV7_Keyclass _keyclass;
}


@property (nonatomic, retain) NSData *encryptedSecretData;

@property (nonatomic, retain) NSData *encryptedMetadata;

@property (nonatomic) SecDbKeychainSerializedItemV7_Keyclass keyclass;
- (NSString *)keyclassAsString:(SecDbKeychainSerializedItemV7_Keyclass)value;
- (SecDbKeychainSerializedItemV7_Keyclass)StringAsKeyclass:(NSString *)str;

// Performs a shallow copy into other
- (void)copyTo:(SecDbKeychainSerializedItemV7 *)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:(SecDbKeychainSerializedItemV7 *)other;

SECDBKEYCHAINSERIALIZEDITEMV7_FUNCTION BOOL SecDbKeychainSerializedItemV7ReadFrom(__unsafe_unretained SecDbKeychainSerializedItemV7 *self, __unsafe_unretained PBDataReader *reader);

@end

