// // Copyright 2019 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only // #import "StickerInfo.h" #import #import #import NS_ASSUME_NONNULL_BEGIN @implementation StickerInfo - (instancetype)initWithPackId:(NSData *)packId packKey:(NSData *)packKey stickerId:(UInt32)stickerId { self = [super init]; if (!self) { return self; } _packId = packId; _packKey = packKey; _stickerId = stickerId; OWSAssertDebug(self.isValid); return self; } - (NSString *)asKey { return [NSString stringWithFormat:@"%@.%lu", self.packId.hexadecimalString, (unsigned long)self.stickerId]; } + (StickerInfo *)defaultValue { return [[StickerInfo alloc] initWithPackId:[Randomness generateRandomBytes:16] packKey:[Randomness generateRandomBytes:(int)StickerManager.packKeyLength] stickerId:0]; } - (StickerPackInfo *)packInfo { return [[StickerPackInfo alloc] initWithPackId:self.packId packKey:self.packKey]; } - (BOOL)isValid { return (self.packId.length > 0 && self.packKey.length == StickerManager.packKeyLength); } - (NSString *)description { return [NSString stringWithFormat:@"%@, %d", self.packId.hexadecimalString, (int)self.stickerId]; } @end NS_ASSUME_NONNULL_END