Revision: 29857
http://sourceforge.net/p/bibdesk/svn/29857
Author: hofman
Date: 2025-11-20 09:46:45 +0000 (Thu, 20 Nov 2025)
Log Message:
-----------
use secure coding for token classes
Modified Paths:
--------------
trunk/bibdesk/BDSKTemplateDocument.m
trunk/bibdesk/BDSKToken.h
trunk/bibdesk/BDSKToken.m
Modified: trunk/bibdesk/BDSKTemplateDocument.m
===================================================================
--- trunk/bibdesk/BDSKTemplateDocument.m 2025-11-20 09:42:41 UTC (rev
29856)
+++ trunk/bibdesk/BDSKTemplateDocument.m 2025-11-20 09:46:45 UTC (rev
29857)
@@ -981,7 +981,7 @@
for (id object in objects)
[str appendString:[self tokenField:tokenField
displayStringForRepresentedObject:object]];
- NSData *data = [NSKeyedArchiver archivedDataWithRootObject:objects
requiringSecureCoding:NO error:NULL];
+ NSData *data = [NSKeyedArchiver archivedDataWithRootObject:objects
requiringSecureCoding:YES error:NULL];
NSPasteboardItem *item = [[NSPasteboardItem alloc] init];
[item setData:data forType:BDSKPasteboardTypeTemplateTokens];
@@ -994,13 +994,9 @@
- (NSArray *)tokenField:(NSTokenField *)tokenField
readFromPasteboard:(NSPasteboard *)pboard {
if (tokenField == itemTemplateTokenField) {
- if ([pboard
availableTypeFromArray:@[BDSKPasteboardTypeTemplateTokens]]) {
- NSData *data = [pboard
dataForType:BDSKPasteboardTypeTemplateTokens];
- NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc]
initForReadingFromData:data error:NULL];
- [unarchiver setRequiresSecureCoding:NO];
- NSArray *tokens = [unarchiver
decodeObjectForKey:NSKeyedArchiveRootObjectKey];
- [unarchiver finishDecoding];
- return tokens;
+ NSData *data = [pboard dataForType:BDSKPasteboardTypeTemplateTokens];
+ if (data) {
+ return [NSKeyedUnarchiver unarchivedObjectOfClasses:[NSSet
setWithObjects:[NSArray class], [BDSKToken class], [NSString class], nil]
fromData:data error:NULL];
} else {
NSArray *strings = [pboard readObjectsForClasses:@[[NSString
class]] options:@{}];
if ([strings count] > 0)
Modified: trunk/bibdesk/BDSKToken.h
===================================================================
--- trunk/bibdesk/BDSKToken.h 2025-11-20 09:42:41 UTC (rev 29856)
+++ trunk/bibdesk/BDSKToken.h 2025-11-20 09:46:45 UTC (rev 29857)
@@ -52,7 +52,7 @@
extern NSString * const BDSKRichTextString;
-@interface BDSKToken : NSObject <NSCopying, NSCoding> {
+@interface BDSKToken : NSObject <NSCopying, NSSecureCoding> {
NSString *title;
BOOL inRepository;
NSString *fontName;
Modified: trunk/bibdesk/BDSKToken.m
===================================================================
--- trunk/bibdesk/BDSKToken.m 2025-11-20 09:42:41 UTC (rev 29856)
+++ trunk/bibdesk/BDSKToken.m 2025-11-20 09:46:45 UTC (rev 29857)
@@ -132,8 +132,8 @@
- (instancetype)initWithCoder:(NSCoder *)decoder {
self = [super init];
if (self) {
- title = [decoder decodeObjectForKey:TITLE_KEY];
- fontName = [decoder decodeObjectForKey:FONTNAME_KEY];
+ title = [decoder decodeObjectOfClass:[NSString class]
forKey:TITLE_KEY];
+ fontName = [decoder decodeObjectOfClass:[NSString class]
forKey:FONTNAME_KEY];
fontSize = [decoder decodeDoubleForKey:FONTSIZE_KEY];
bold = [decoder decodeIntegerForKey:BOLD_KEY];
italic = [decoder decodeIntegerForKey:ITALIC_KEY];
@@ -142,6 +142,8 @@
return self;
}
++ (BOOL)supportsSecureCoding { return YES; }
+
- (void)encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:title forKey:TITLE_KEY];
[encoder encodeObject:fontName forKey:FONTNAME_KEY];
@@ -248,11 +250,13 @@
- (instancetype)initWithCoder:(NSCoder *)decoder {
self = [super initWithCoder:decoder];
if (self) {
- key = [decoder decodeObjectForKey:KEY_KEY];
+ key = [decoder decodeObjectOfClass:[NSString class] forKey:KEY_KEY];
}
return self;
}
++ (BOOL)supportsSecureCoding { return YES; }
+
- (void)encodeWithCoder:(NSCoder *)encoder {
[super encodeWithCoder:encoder];
[encoder encodeObject:key forKey:KEY_KEY];
@@ -317,13 +321,15 @@
- (instancetype)initWithCoder:(NSCoder *)decoder {
self = [super initWithCoder:decoder];
if (self) {
- appendingKey = [decoder decodeObjectForKey:APPENDINGKEY_KEY];
- prefix = [decoder decodeObjectForKey:PREFIX_KEY];
- suffix = [decoder decodeObjectForKey:SUFFIX_KEY];
+ appendingKey = [decoder decodeObjectOfClass:[NSString class]
forKey:APPENDINGKEY_KEY];
+ prefix = [decoder decodeObjectOfClass:[NSString class]
forKey:PREFIX_KEY];
+ suffix = [decoder decodeObjectOfClass:[NSString class]
forKey:SUFFIX_KEY];
}
return self;
}
++ (BOOL)supportsSecureCoding { return YES; }
+
- (void)encodeWithCoder:(NSCoder *)encoder {
[super encodeWithCoder:encoder];
[encoder encodeObject:appendingKey forKey:APPENDINGKEY_KEY];
@@ -422,12 +428,14 @@
- (instancetype)initWithCoder:(NSCoder *)decoder {
self = [super initWithCoder:decoder];
if (self) {
- casingKey = [decoder decodeObjectForKey:CASINGKEY_KEY];
- cleaningKey = [decoder decodeObjectForKey:CLEANINGKEY_KEY];
+ casingKey = [decoder decodeObjectOfClass:[NSString class]
forKey:CASINGKEY_KEY];
+ cleaningKey = [decoder decodeObjectOfClass:[NSString class]
forKey:CLEANINGKEY_KEY];
}
return self;
}
++ (BOOL)supportsSecureCoding { return YES; }
+
- (void)encodeWithCoder:(NSCoder *)encoder {
[super encodeWithCoder:encoder];
[encoder encodeObject:casingKey forKey:CASINGKEY_KEY];
@@ -528,11 +536,13 @@
- (instancetype)initWithCoder:(NSCoder *)decoder {
self = [super initWithCoder:decoder];
if (self) {
- urlFormatKey = [decoder decodeObjectForKey:URLFORMATKEY_KEY];
+ urlFormatKey = [decoder decodeObjectOfClass:[NSString class]
forKey:URLFORMATKEY_KEY];
}
return self;
}
++ (BOOL)supportsSecureCoding { return YES; }
+
- (void)encodeWithCoder:(NSCoder *)encoder {
[super encodeWithCoder:encoder];
[encoder encodeObject:urlFormatKey forKey:URLFORMATKEY_KEY];
@@ -609,12 +619,14 @@
- (instancetype)initWithCoder:(NSCoder *)decoder {
self = [super initWithCoder:decoder];
if (self) {
- nameStyleKey = [decoder decodeObjectForKey:NAMESTYLEKEY_KEY];
- joinStyleKey = [decoder decodeObjectForKey:JOINSTYLEKEY_KEY];
+ nameStyleKey = [decoder decodeObjectOfClass:[NSString class]
forKey:NAMESTYLEKEY_KEY];
+ joinStyleKey = [decoder decodeObjectOfClass:[NSString class]
forKey:JOINSTYLEKEY_KEY];
}
return self;
}
++ (BOOL)supportsSecureCoding { return YES; }
+
- (void)encodeWithCoder:(NSCoder *)encoder {
[super encodeWithCoder:encoder];
[encoder encodeObject:nameStyleKey forKey:NAMESTYLEKEY_KEY];
@@ -697,12 +709,14 @@
- (instancetype)initWithCoder:(NSCoder *)decoder {
self = [super initWithCoder:decoder];
if (self) {
- linkedFileFormatKey = [decoder
decodeObjectForKey:LINKEDFILEFORMATKEY_KEY];
- linkedFileJoinStyleKey = [decoder
decodeObjectForKey:LINKEDFILEJOINSTYLEKEY_KEY];
+ linkedFileFormatKey = [decoder decodeObjectOfClass:[NSString class]
forKey:LINKEDFILEFORMATKEY_KEY];
+ linkedFileJoinStyleKey = [decoder decodeObjectOfClass:[NSString class]
forKey:LINKEDFILEJOINSTYLEKEY_KEY];
}
return self;
}
++ (BOOL)supportsSecureCoding { return YES; }
+
- (void)encodeWithCoder:(NSCoder *)encoder {
[super encodeWithCoder:encoder];
[encoder encodeObject:linkedFileFormatKey forKey:LINKEDFILEFORMATKEY_KEY];
@@ -781,11 +795,13 @@
- (instancetype)initWithCoder:(NSCoder *)decoder {
self = [super initWithCoder:decoder];
if (self) {
- dateFormatKey = [decoder decodeObjectForKey:DATEFORMATKEY_KEY];
+ dateFormatKey = [decoder decodeObjectOfClass:[NSString class]
forKey:DATEFORMATKEY_KEY];
}
return self;
}
++ (BOOL)supportsSecureCoding { return YES; }
+
- (void)encodeWithCoder:(NSCoder *)encoder {
[super encodeWithCoder:encoder];
[encoder encodeObject:dateFormatKey forKey:DATEFORMATKEY_KEY];
@@ -862,12 +878,14 @@
- (instancetype)initWithCoder:(NSCoder *)decoder {
self = [super initWithCoder:decoder];
if (self) {
- counterStyleKey = [decoder decodeObjectForKey:COUNTERSTYLEKEY_KEY];
- counterCasingKey = [decoder decodeObjectForKey:COUNTERCASINGKEY_KEY];
+ counterStyleKey = [decoder decodeObjectOfClass:[NSString class]
forKey:COUNTERSTYLEKEY_KEY];
+ counterCasingKey = [decoder decodeObjectOfClass:[NSString class]
forKey:COUNTERCASINGKEY_KEY];
}
return self;
}
++ (BOOL)supportsSecureCoding { return YES; }
+
- (void)encodeWithCoder:(NSCoder *)encoder {
[super encodeWithCoder:encoder];
[encoder encodeObject:counterStyleKey forKey:COUNTERSTYLEKEY_KEY];
@@ -957,12 +975,14 @@
- (instancetype)initWithCoder:(NSCoder *)decoder {
self = [super initWithCoder:decoder];
if (self) {
- field = [decoder decodeObjectForKey:FIELD_KEY];
- altText = [decoder decodeObjectForKey:ALTTEXT_KEY];
+ field = [decoder decodeObjectOfClass:[NSString class]
forKey:FIELD_KEY];
+ altText = [decoder decodeObjectOfClass:[NSString class]
forKey:ALTTEXT_KEY];
}
return self;
}
++ (BOOL)supportsSecureCoding { return YES; }
+
- (void)encodeWithCoder:(NSCoder *)encoder {
[super encodeWithCoder:encoder];
[encoder encodeObject:field forKey:FIELD_KEY];
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit