Skip to content

Commit

Permalink
Fix santactl fileinfo with CDHashes.
Browse files Browse the repository at this point in the history
  • Loading branch information
pmarkowsky committed Mar 10, 2024
1 parent f2ce926 commit 3bef115
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Source/common/SNTRuleIdentifiers.h
Expand Up @@ -33,7 +33,7 @@ struct RuleIdentifiers {
NSString *teamID;
};

@interface SNTRuleIdentifiers : NSObject
@interface SNTRuleIdentifiers : NSObject <NSSecureCoding>
@property(readonly) NSString *cdhash;
@property(readonly) NSString *binarySHA256;
@property(readonly) NSString *signingID;
Expand Down
34 changes: 34 additions & 0 deletions Source/common/SNTRuleIdentifiers.m
Expand Up @@ -36,4 +36,38 @@ - (struct RuleIdentifiers)toStruct {
.teamID = self.teamID};
}

#pragma mark NSSecureCoding

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-literal-conversion"
#define ENCODE(obj, key) \
if (obj) [coder encodeObject:obj forKey:key]
#define DECODE(cls, key) [decoder decodeObjectOfClass:[cls class] forKey:key]

+ (BOOL)supportsSecureCoding {
return YES;
}

- (instancetype)initWithCoder:(NSCoder *)decoder {
self = [self init];
if (self) {
_cdhash = DECODE(NSString, @"cdhash");
_binarySHA256 = DECODE(NSString, @"binarySHA256");
_signingID = DECODE(NSString, @"signingID");
_certificateSHA256 = DECODE(NSString, @"certificateSHA256");
_teamID = DECODE(NSString, @"teamID");
}
return self;
}

- (void)encodeWithCoder:(NSCoder *)coder {
ENCODE(self.cdhash, @"cdhash");
ENCODE(self.binarySHA256, @"binarySHA256");
ENCODE(self.signingID, @"signingID");
ENCODE(self.certificateSHA256, @"certificateSHA256");
ENCODE(self.teamID, @"teamID");
}

#pragma clang diagnostic pop

@end

0 comments on commit 3bef115

Please sign in to comment.