ObjFW
|
A class for storing arbitrary data in secure (non-swappable) memory, securely wiping it when it gets deallocated. More...
#include <ObjFW/ObjFW.h>
Instance Methods | |
(instancetype) | - initWithCount:allowsSwappableMemory: |
Initializes an already allocated OFSecureData with count items of item size 1, all set to zero. | |
(instancetype) | - initWithCount:itemSize:allowsSwappableMemory: |
Initializes an already allocated OFSecureData with count items of the specified item size, all set to zero. | |
(instancetype) | - initWithItemSize: |
Initializes an already allocated OFData to be empty with the specified item size. | |
(instancetype) | - initWithItems:count: |
Initializes an already allocated OFData with the specified count items of size 1. | |
(instancetype) | - initWithItems:count:itemSize: |
Initializes an already allocated OFData with the specified count items of the specified size. | |
(instancetype) | - initWithItemsNoCopy:count:freeWhenDone: |
Initializes an already allocated OFData with the specified count items of size 1 by taking over ownership of the specified items pointer. | |
(instancetype) | - initWithItemsNoCopy:count:itemSize:freeWhenDone: |
Initializes an already allocated OFData with the specified count items of the specified size by taking ownership of the specified items pointer. | |
(instancetype) | - initWithContentsOfFile: |
Initializes an already allocated OFData with an item size of 1, containing the data of the specified file. | |
(instancetype) | - initWithContentsOfIRI: |
Initializes an already allocated OFData with an item size of 1, containing the data of the specified IRI. | |
(instancetype) | - initWithStringRepresentation: |
Initializes an already allocated OFData with an item size of 1, containing the data of the hex string representation. | |
(instancetype) | - initWithBase64EncodedString: |
Initializes an already allocated OFData with an item size of 1, containing the data of the Base64-encoded string. | |
(void *) | - mutableItemAtIndex: |
Returns a specific item of the OFSecureData. | |
(bool) | - isEqual: |
Checks the OFSecureData for equality to another object. | |
(void) | - zero |
Zeroes the data. | |
(void) | - writeToFile: |
Writes the OFData into the specified file. | |
(void) | - writeToIRI: |
Writes the OFData to the specified IRI. | |
Instance Methods inherited from OFData | |
(instancetype) | - init |
Initializes an already allocated OFData to be empty with an item size of 1. | |
(OFComparisonResult) | - compare: |
Compares the data to other data. | |
(const void *) | - itemAtIndex: |
Returns a specific item of the OFData. | |
(OFData *) | - subdataWithRange: |
Returns the data in the specified range as a new OFData. | |
(OFRange) | - rangeOfData:options:range: |
Returns the range of the data. | |
(id) | - objectByParsingMessagePackWithDepthLimit: |
Parses the MessagePack representation and returns it as an object. | |
Instance Methods inherited from OFObject | |
(nullable OFMethodSignature *) | - methodSignatureForSelector: |
Returns the method signature for the specified selector. | |
(void) | - dealloc |
Deallocates the object. | |
(void) | - performSelector:afterDelay: |
Performs the specified selector after the specified delay. | |
(void) | - performSelector:withObject:afterDelay: |
Performs the specified selector with the specified object after the specified delay. | |
(void) | - performSelector:withObject:withObject:afterDelay: |
Performs the specified selector with the specified objects after the specified delay. | |
(void) | - performSelector:withObject:withObject:withObject:afterDelay: |
Performs the specified selector with the specified objects after the specified delay. | |
(void) | - performSelector:withObject:withObject:withObject:withObject:afterDelay: |
Performs the specified selector with the specified objects after the specified delay. | |
(void) | - performSelector:onThread:waitUntilDone: |
Performs the specified selector on the specified thread. | |
(void) | - performSelector:onThread:withObject:waitUntilDone: |
Performs the specified selector on the specified thread with the specified object. | |
(void) | - performSelector:onThread:withObject:withObject:waitUntilDone: |
Performs the specified selector on the specified thread with the specified objects. | |
(void) | - performSelector:onThread:withObject:withObject:withObject:waitUntilDone: |
Performs the specified selector on the specified thread with the specified objects. | |
(void) | - performSelector:onThread:withObject:withObject:withObject:withObject:waitUntilDone: |
Performs the specified selector on the specified thread with the specified objects. | |
(void) | - performSelectorOnMainThread:waitUntilDone: |
Performs the specified selector on the main thread. | |
(void) | - performSelectorOnMainThread:withObject:waitUntilDone: |
Performs the specified selector on the main thread with the specified object. | |
(void) | - performSelectorOnMainThread:withObject:withObject:waitUntilDone: |
Performs the specified selector on the main thread with the specified objects. | |
(void) | - performSelectorOnMainThread:withObject:withObject:withObject:waitUntilDone: |
Performs the specified selector on the main thread with the specified objects. | |
(void) | - performSelectorOnMainThread:withObject:withObject:withObject:withObject:waitUntilDone: |
Performs the specified selector on the main thread with the specified objects. | |
(void) | - performSelector:onThread:afterDelay: |
Performs the specified selector on the specified thread after the specified delay. | |
(void) | - performSelector:onThread:withObject:afterDelay: |
Performs the specified selector on the specified thread with the specified object after the specified delay. | |
(void) | - performSelector:onThread:withObject:withObject:afterDelay: |
Performs the specified selector on the specified thread with the specified objects after the specified delay. | |
(void) | - performSelector:onThread:withObject:withObject:withObject:afterDelay: |
Performs the specified selector on the specified thread with the specified objects after the specified delay. | |
(void) | - performSelector:onThread:withObject:withObject:withObject:withObject:afterDelay: |
Performs the specified selector on the specified thread with the specified objects after the specified delay. | |
(nullable id) | - forwardingTargetForSelector: |
This method is called when resolveClassMethod: or resolveInstanceMethod: returned false. It should return a target to which the message should be forwarded. | |
(void) | - doesNotRecognizeSelector: |
Handles messages which are not understood by the receiver. | |
Instance Methods inherited from <OFObject> | |
(unsigned long) | - hash |
Returns a hash for the object. | |
(unsigned int) | - retainCount |
Returns the retain count. | |
(bool) | - isProxy |
Returns whether the object is a proxy object. | |
(bool) | - isKindOfClass: |
Returns a boolean whether the object is of the specified kind. | |
(bool) | - isMemberOfClass: |
Returns a boolean whether the object is a member of the specified class. | |
(bool) | - respondsToSelector: |
Returns a boolean whether the object responds to the specified selector. | |
(nullable IMP) | - methodForSelector: |
Returns the implementation for the specified selector. | |
(nullable id) | - performSelector: |
Performs the specified selector. | |
(nullable id) | - performSelector:withObject: |
Performs the specified selector with the specified object. | |
(nullable id) | - performSelector:withObject:withObject: |
Performs the specified selector with the specified objects. | |
(nullable id) | - performSelector:withObject:withObject:withObject: |
Performs the specified selector with the specified objects. | |
(nullable id) | - performSelector:withObject:withObject:withObject:withObject: |
Performs the specified selector with the specified objects. | |
(instancetype) | - retain |
Increases the retain count. | |
(void) | - release |
Decreases the retain count. | |
(instancetype) | - autorelease |
Adds the object to the topmost autorelease pool of the thread's autorelease pool stack. | |
(instancetype) | - self |
Returns the receiver. | |
(bool) | - allowsWeakReference |
Returns whether the object allows a weak reference. | |
(bool) | - retainWeakReference |
Retain a weak reference to this object. | |
Instance Methods inherited from <OFCopying> | |
(id) | - copy |
Copies the object. | |
Instance Methods inherited from <OFMutableCopying> | |
(id) | - mutableCopy |
Creates a mutable copy of the object. | |
Instance Methods inherited from <OFComparing> | |
(OFComparisonResult) | - compare: |
Compares the object to another object. | |
Class Methods | |
(void) | + preallocateUnswappableMemoryWithSize: |
Preallocates the specified number of bytes for unswappable memory. | |
(instancetype) | + dataWithCount:allowsSwappableMemory: |
Creates a new, autoreleased OFSecureData with count items of item size 1, all set to zero. | |
(instancetype) | + dataWithCount:itemSize:allowsSwappableMemory: |
Creates a new, autoreleased OFSecureData with count items of the specified item size, all set to zero. | |
(instancetype) | + dataWithItems:count: |
Creates a new OFData with the specified count items of size 1. | |
(instancetype) | + dataWithItems:count:itemSize: |
Creates a new OFData with the specified count items of the specified size. | |
(instancetype) | + dataWithItemsNoCopy:count:freeWhenDone: |
Creates a new OFData with the specified count items of size 1 by taking over ownership of the specified items pointer. | |
(instancetype) | + dataWithItemsNoCopy:count:itemSize:freeWhenDone: |
Creates a new OFData with the specified count items of the specified size by taking ownership of the specified items pointer. | |
(instancetype) | + dataWithContentsOfFile: |
Creates a new OFData with an item size of 1, containing the data of the specified file. | |
(instancetype) | + dataWithContentsOfIRI: |
Creates a new OFData with an item size of 1, containing the data of the specified IRI. | |
(instancetype) | + dataWithStringRepresentation: |
Creates a new OFData with an item size of 1, containing the data of the hex string representation. | |
(instancetype) | + dataWithBase64EncodedString: |
Creates a new OFData with an item size of 1, containing the data of the Base64-encoded string. | |
Class Methods inherited from OFData | |
(instancetype) | + data |
Creates a new OFData that is empty with an item size of 1. | |
(instancetype) | + dataWithItemSize: |
Creates a new OFData that is empty with the specified item size. | |
Class Methods inherited from OFObject | |
(void) | + load |
A method which is called once when the class is loaded into the runtime. | |
(void) | + unload |
A method which is called when the class is unloaded from the runtime. | |
(void) | + initialize |
A method which is called the moment before the first call to the class is being made. | |
(instancetype) | + alloc |
Allocates memory for an instance of the class and sets up the memory pool for the object. | |
(Class) | + class |
Returns the class. | |
(OFString *) | + className |
Returns the name of the class as a string. | |
(bool) | + isSubclassOfClass: |
Returns a boolean whether the class is a subclass of the specified class. | |
(nullable Class) | + superclass |
Returns the superclass of the class. | |
(bool) | + instancesRespondToSelector: |
Checks whether instances of the class respond to a given selector. | |
(bool) | + conformsToProtocol: |
Checks whether the class conforms to a given protocol. | |
(nullable IMP) | + instanceMethodForSelector: |
Returns the implementation of the instance method for the specified selector. | |
(nullable OFMethodSignature *) | + instanceMethodSignatureForSelector: |
Returns the method signature of the instance method for the specified selector. | |
(OFString *) | + description |
Returns a description for the class, which is usually the class name. | |
(nullable IMP) | + replaceClassMethod:withMethodFromClass: |
Replaces a class method with a class method from another class. | |
(nullable IMP) | + replaceInstanceMethod:withMethodFromClass: |
Replaces an instance method with an instance method from another class. | |
(void) | + inheritMethodsFromClass: |
Adds all methods from the specified class to the class that is the receiver. | |
(bool) | + resolveClassMethod: |
Try to resolve the specified class method. | |
(bool) | + resolveInstanceMethod: |
Try to resolve the specified instance method. | |
(id) | + copy |
Returns the class. | |
Properties | |
bool | allowsSwappableMemory |
Whether the data may be stored in swappable memory. | |
void * | mutableItems |
All items of the OFSecureData as a C array. | |
Properties inherited from OFData | |
size_t | itemSize |
The size of a single item in the OFData in bytes. | |
size_t | count |
The number of items in the OFData. | |
const void * | items |
All elements of the OFData as a C array. | |
const void * | firstItem |
The first item of the OFData or NULL . | |
const void * | lastItem |
The last item of the OFData or NULL . | |
OFString * | stringRepresentation |
The string representation of the data. | |
OFString * | stringByBase64Encoding |
A string containing the data in Base64 encoding. | |
OFString * | stringByMD5Hashing |
The MD5 hash of the data as a string. | |
OFString * | stringByRIPEMD160Hashing |
The RIPEMD-160 hash of the data as a string. | |
OFString * | stringBySHA1Hashing |
The SHA-1 hash of the data as a string. | |
OFString * | stringBySHA224Hashing |
The SHA-224 hash of the data as a string. | |
OFString * | stringBySHA256Hashing |
The SHA-256 hash of the data as a string. | |
OFString * | stringBySHA384Hashing |
The SHA-384 hash of the data as a string. | |
OFString * | stringBySHA512Hashing |
The SHA-512 hash of the data as a string. | |
id | objectByParsingMessagePack |
The data interpreted as MessagePack representation and parsed as an object. | |
Properties inherited from OFObject | |
OFString * | className |
The name of the object's class. | |
OFString * | description |
A description for the object. | |
Properties inherited from <OFMessagePackRepresentation> | |
OFData * | messagePackRepresentation |
The MessagePack representation of the object as OFData. | |
A class for storing arbitrary data in secure (non-swappable) memory, securely wiping it when it gets deallocated.
+ (instancetype) dataWithBase64EncodedString: | (OFString *) | string |
Creates a new OFData with an item size of 1, containing the data of the Base64-encoded string.
string | The string with the Base64-encoded data |
OFInvalidFormatException | The specified string is not correctly formatted |
Reimplemented from OFData.
+ (instancetype) dataWithContentsOfFile: | (OFString *) | path |
+ (instancetype) dataWithContentsOfIRI: | (OFIRI *) | IRI |
+ (instancetype) dataWithCount: | (size_t) | count | |
allowsSwappableMemory: | (bool) | allowsSwappableMemory |
Creates a new, autoreleased OFSecureData with count
items of item size 1, all set to zero.
count | The number of zero items the OFSecureData should contain |
allowsSwappableMemory | Whether the data may be stored in swappable memory |
+ (instancetype) dataWithCount: | (size_t) | count | |
itemSize: | (size_t) | itemSize | |
allowsSwappableMemory: | (bool) | allowsSwappableMemory |
Creates a new, autoreleased OFSecureData with count
items of the specified item size, all set to zero.
count | The number of zero items the OFSecureData should contain |
itemSize | The size of a single item in the OFSecureData in bytes |
allowsSwappableMemory | Whether the data may be stored in swappable memory |
+ (instancetype) dataWithItems: | (const void *) | items | |
count: | (size_t) | count |
+ (instancetype) dataWithItems: | (const void *) | items | |
count: | (size_t) | count | |
itemSize: | (size_t) | itemSize |
+ (instancetype) dataWithItemsNoCopy: | (void *) | items | |
count: | (size_t) | count | |
freeWhenDone: | (bool) | freeWhenDone |
Creates a new OFData with the specified count
items of size 1 by taking over ownership of the specified items pointer.
If initialization fails for whatever reason, the passed memory is not freed if freeWhenDone
is true.
items | The items to store in the OFData |
count | The number of items |
freeWhenDone | Whether to free the pointer when it is no longer needed by the OFData |
Reimplemented from OFData.
+ (instancetype) dataWithItemsNoCopy: | (void *) | items | |
count: | (size_t) | count | |
itemSize: | (size_t) | itemSize | |
freeWhenDone: | (bool) | freeWhenDone |
Creates a new OFData with the specified count
items of the specified size by taking ownership of the specified items pointer.
If initialization fails for whatever reason, the passed memory is not freed if freeWhenDone
is true.
items | The items to store in the OFData |
count | The number of items |
itemSize | The item size of a single item in bytes |
freeWhenDone | Whether to free the pointer when it is no longer needed by the OFData |
Reimplemented from OFData.
+ (instancetype) dataWithStringRepresentation: | (OFString *) | string |
Creates a new OFData with an item size of 1, containing the data of the hex string representation.
string | The hex string representation of the data |
OFInvalidFormatException | The specified string is not correctly formatted |
Reimplemented from OFData.
- (instancetype) initWithBase64EncodedString: | (OFString *) | string |
Initializes an already allocated OFData with an item size of 1, containing the data of the Base64-encoded string.
string | The string with the Base64-encoded data |
OFInvalidFormatException | The specified string is not correctly formatted |
Reimplemented from OFData.
- (instancetype) initWithContentsOfFile: | (OFString *) | path |
- (instancetype) initWithContentsOfIRI: | (OFIRI *) | IRI |
- (instancetype) initWithCount: | (size_t) | count | |
allowsSwappableMemory: | (bool) | allowsSwappableMemory |
Initializes an already allocated OFSecureData with count
items of item size 1, all set to zero.
count | The number of zero items the OFSecureData should contain |
allowsSwappableMemory | Whether the data may be stored in swappable memory |
- (instancetype) initWithCount: | (size_t) | count | |
itemSize: | (size_t) | itemSize | |
allowsSwappableMemory: | (bool) | allowsSwappableMemory |
Initializes an already allocated OFSecureData with count
items of the specified item size, all set to zero.
itemSize | The size of a single item in the OFSecureData in bytes |
count | The number of zero items the OFSecureData should contain |
allowsSwappableMemory | Whether the data may be stored in swappable memory |
- (instancetype) initWithItems: | (const void *) | items | |
count: | (size_t) | count |
- (instancetype) initWithItems: | (const void *) | items | |
count: | (size_t) | count | |
itemSize: | (size_t) | itemSize |
- (instancetype) initWithItemSize: | (size_t) | itemSize |
- (instancetype) initWithItemsNoCopy: | (void *) | items | |
count: | (size_t) | count | |
freeWhenDone: | (bool) | freeWhenDone |
Initializes an already allocated OFData with the specified count
items of size 1 by taking over ownership of the specified items pointer.
If initialization fails for whatever reason, the passed memory is not freed if freeWhenDone
is true.
items | The items to store in the OFData |
count | The number of items |
freeWhenDone | Whether to free the pointer when it is no longer needed by the OFData |
Reimplemented from OFData.
- (instancetype) initWithItemsNoCopy: | (void *) | items | |
count: | (size_t) | count | |
itemSize: | (size_t) | itemSize | |
freeWhenDone: | (bool) | freeWhenDone |
Initializes an already allocated OFData with the specified count
items of the specified size by taking ownership of the specified items pointer.
If initialization fails for whatever reason, the passed memory is not freed if freeWhenDone
is true.
items | The items to store in the OFData |
count | The number of items |
itemSize | The item size of a single item in bytes |
freeWhenDone | Whether to free the pointer when it is no longer needed by the OFData |
Reimplemented from OFData.
- (instancetype) initWithStringRepresentation: | (OFString *) | string |
Initializes an already allocated OFData with an item size of 1, containing the data of the hex string representation.
string | The hex string representation of the data |
OFInvalidFormatException | The specified string is not correctly formatted |
Reimplemented from OFData.
- (bool) isEqual: | (nullable id) | object |
Checks the OFSecureData for equality to another object.
If the specified object is a subclass of OFData, the comparison is performed in constant time.
object | The object which should be tested for equality |
Reimplemented from <OFObject>.
- (void *) mutableItemAtIndex: | (size_t) | index |
Returns a specific item of the OFSecureData.
Modifying the returned item directly is allowed and will change the contents of the data array.
index | The number of the item to return |
+ (void) preallocateUnswappableMemoryWithSize: | (size_t) | size |
Preallocates the specified number of bytes for unswappable memory.
This is useful to allocate unswappable memory before enabling a sandbox that does not allow it anymore.
size | The number of bytes of unswappable memory to preallocate |
- (void) writeToFile: | (OFString *) | path |
- (void) writeToIRI: | (OFIRI *) | IRI |
|
readnonatomicassign |
All items of the OFSecureData as a C array.
Modifying the returned array directly is allowed and will change the contents of the data.