Index: src/OFData+CryptoHashing.h ================================================================== --- src/OFData+CryptoHashing.h +++ src/OFData+CryptoHashing.h @@ -29,39 +29,39 @@ @interface OFData (CryptoHashing) /** * @brief The MD5 hash of the data as a string. */ -@property (readonly, nonatomic) OFString *MD5Hash; +@property (readonly, nonatomic) OFString *stringByMD5Hashing; /** * @brief The RIPEMD-160 hash of the data as a string. */ -@property (readonly, nonatomic) OFString *RIPEMD160Hash; +@property (readonly, nonatomic) OFString *stringByRIPEMD160Hashing; /** * @brief The SHA-1 hash of the data as a string. */ -@property (readonly, nonatomic) OFString *SHA1Hash; +@property (readonly, nonatomic) OFString *stringBySHA1Hashing; /** * @brief The SHA-224 hash of the data as a string. */ -@property (readonly, nonatomic) OFString *SHA224Hash; +@property (readonly, nonatomic) OFString *stringBySHA224Hashing; /** * @brief The SHA-256 hash of the data as a string. */ -@property (readonly, nonatomic) OFString *SHA256Hash; +@property (readonly, nonatomic) OFString *stringBySHA256Hashing; /** * @brief The SHA-384 hash of the data as a string. */ -@property (readonly, nonatomic) OFString *SHA384Hash; +@property (readonly, nonatomic) OFString *stringBySHA384Hashing; /** * @brief The SHA-512 hash of the data as a string. */ -@property (readonly, nonatomic) OFString *SHA512Hash; +@property (readonly, nonatomic) OFString *stringBySHA512Hashing; @end OF_ASSUME_NONNULL_END Index: src/OFData+CryptoHashing.m ================================================================== --- src/OFData+CryptoHashing.m +++ src/OFData+CryptoHashing.m @@ -56,40 +56,40 @@ return [OFString stringWithCString: cString encoding: OF_STRING_ENCODING_ASCII length: digestSize * 2]; } -- (OFString *)MD5Hash +- (OFString *)stringByMD5Hashing { return [self of_cryptoHashWithClass: [OFMD5Hash class]]; } -- (OFString *)RIPEMD160Hash +- (OFString *)stringByRIPEMD160Hashing { return [self of_cryptoHashWithClass: [OFRIPEMD160Hash class]]; } -- (OFString *)SHA1Hash +- (OFString *)stringBySHA1Hashing { return [self of_cryptoHashWithClass: [OFSHA1Hash class]]; } -- (OFString *)SHA224Hash +- (OFString *)stringBySHA224Hashing { return [self of_cryptoHashWithClass: [OFSHA224Hash class]]; } -- (OFString *)SHA256Hash +- (OFString *)stringBySHA256Hashing { return [self of_cryptoHashWithClass: [OFSHA256Hash class]]; } -- (OFString *)SHA384Hash +- (OFString *)stringBySHA384Hashing { return [self of_cryptoHashWithClass: [OFSHA384Hash class]]; } -- (OFString *)SHA512Hash +- (OFString *)stringBySHA512Hashing { return [self of_cryptoHashWithClass: [OFSHA512Hash class]]; } @end Index: src/OFString+CryptoHashing.h ================================================================== --- src/OFString+CryptoHashing.h +++ src/OFString+CryptoHashing.h @@ -27,39 +27,39 @@ @interface OFString (CryptoHashing) /** * @brief The MD5 hash of the string as a string. */ -@property (readonly, nonatomic) OFString *MD5Hash; +@property (readonly, nonatomic) OFString *stringByMD5Hashing; /** * @brief The RIPEMD-160 hash of the string as a string. */ -@property (readonly, nonatomic) OFString *RIPEMD160Hash; +@property (readonly, nonatomic) OFString *stringByRIPEMD160Hashing; /** * @brief The SHA-1 hash of the string as a string. */ -@property (readonly, nonatomic) OFString *SHA1Hash; +@property (readonly, nonatomic) OFString *stringBySHA1Hashing; /** * @brief The SHA-224 hash of the string as a string. */ -@property (readonly, nonatomic) OFString *SHA224Hash; +@property (readonly, nonatomic) OFString *stringBySHA224Hashing; /** * @brief The SHA-256 hash of the string as a string. */ -@property (readonly, nonatomic) OFString *SHA256Hash; +@property (readonly, nonatomic) OFString *stringBySHA256Hashing; /** * @brief The SHA-384 hash of the string as a string. */ -@property (readonly, nonatomic) OFString *SHA384Hash; +@property (readonly, nonatomic) OFString *stringBySHA384Hashing; /** * @brief The SHA-512 hash of the string as a string. */ -@property (readonly, nonatomic) OFString *SHA512Hash; +@property (readonly, nonatomic) OFString *stringBySHA512Hashing; @end OF_ASSUME_NONNULL_END Index: src/OFString+CryptoHashing.m ================================================================== --- src/OFString+CryptoHashing.m +++ src/OFString+CryptoHashing.m @@ -55,40 +55,40 @@ return [OFString stringWithCString: cString encoding: OF_STRING_ENCODING_ASCII length: digestSize * 2]; } -- (OFString *)MD5Hash +- (OFString *)stringByMD5Hashing { return [self of_cryptoHashWithClass: [OFMD5Hash class]]; } -- (OFString *)RIPEMD160Hash +- (OFString *)stringByRIPEMD160Hashing { return [self of_cryptoHashWithClass: [OFRIPEMD160Hash class]]; } -- (OFString *)SHA1Hash +- (OFString *)stringBySHA1Hashing { return [self of_cryptoHashWithClass: [OFSHA1Hash class]]; } -- (OFString *)SHA224Hash +- (OFString *)stringBySHA224Hashing { return [self of_cryptoHashWithClass: [OFSHA224Hash class]]; } -- (OFString *)SHA256Hash +- (OFString *)stringBySHA256Hashing { return [self of_cryptoHashWithClass: [OFSHA256Hash class]]; } -- (OFString *)SHA384Hash +- (OFString *)stringBySHA384Hashing { return [self of_cryptoHashWithClass: [OFSHA384Hash class]]; } -- (OFString *)SHA512Hash +- (OFString *)stringBySHA512Hashing { return [self of_cryptoHashWithClass: [OFSHA512Hash class]]; } @end Index: tests/OFDataTests.m ================================================================== --- tests/OFDataTests.m +++ tests/OFDataTests.m @@ -166,28 +166,35 @@ OFOutOfRangeException, [immutable subdataWithRange: of_range(7, 1)]) EXPECT_EXCEPTION(@"-[subdataWithRange:] failing on out of range #2", OFOutOfRangeException, [mutable subdataWithRange: of_range(6, 1)]) - TEST(@"-[MD5Hash]", [mutable.MD5Hash isEqual: @"abcde".MD5Hash]) - - TEST(@"-[RIPEMD160Hash]", [mutable.RIPEMD160Hash - isEqual: @"abcde".RIPEMD160Hash]) - - TEST(@"-[SHA1Hash]", [mutable.SHA1Hash isEqual: @"abcde".SHA1Hash]) - - TEST(@"-[SHA224Hash]", [mutable.SHA224Hash - isEqual: @"abcde".SHA224Hash]) - - TEST(@"-[SHA256Hash]", [mutable.SHA256Hash - isEqual: @"abcde".SHA256Hash]) - - TEST(@"-[SHA384Hash]", [mutable.SHA384Hash - isEqual: @"abcde".SHA384Hash]) - - TEST(@"-[SHA512Hash]", [mutable.SHA512Hash - isEqual: @"abcde".SHA512Hash]) + TEST(@"-[stringByMD5Hashing]", [mutable.stringByMD5Hashing + isEqual: @"ab56b4d92b40713acc5af89985d4b786"]) + + TEST(@"-[stringByRIPEMD160Hashing]", [mutable.stringByRIPEMD160Hashing + isEqual: @"973398b6e6c6cfa6b5e6a5173f195ce3274bf828"]) + + TEST(@"-[stringBySHA1Hashing]", [mutable.stringBySHA1Hashing + isEqual: @"03de6c570bfe24bfc328ccd7ca46b76eadaf4334"]) + + TEST(@"-[stringBySHA224Hashing]", [mutable.stringBySHA224Hashing + isEqual: @"bdd03d560993e675516ba5a50638b6531ac2ac3d5847c61916cfced6" + ]) + + TEST(@"-[stringBySHA256Hashing]", [mutable.stringBySHA256Hashing + isEqual: @"36bbe50ed96841d10443bcb670d6554f0a34b761be67ec9c4a8ad2c0" + @"c44ca42c"]) + + TEST(@"-[stringBySHA384Hashing]", [mutable.stringBySHA384Hashing + isEqual: @"4c525cbeac729eaf4b4665815bc5db0c84fe6300068a727cf74e2813" + @"521565abc0ec57a37ee4d8be89d097c0d2ad52f0"]) + + TEST(@"-[stringBySHA512Hashing]", [mutable.stringBySHA512Hashing + isEqual: @"878ae65a92e86cac011a570d4c30a7eaec442b85ce8eca0c2952b5e3" + @"cc0628c2e79d889ad4d5c7c626986d452dd86374b6ffaa7cd8b67665" + @"bef2289a5c70b0a1"]) TEST(@"-[stringByBase64Encoding]", [mutable.stringByBase64Encoding isEqual: @"YWJjZGU="]) TEST(@"+[dataWithBase64EncodedString:]", Index: tests/OFStringTests.m ================================================================== --- tests/OFStringTests.m +++ tests/OFStringTests.m @@ -1206,34 +1206,36 @@ (ua = [C(@"fรถรถbรคr๐Ÿ€บ") UTF32StringWithByteOrder: SWAPPED_BYTE_ORDER]) && !memcmp(ua, sucstr + 1, of_string_utf32_length(sucstr) * 4)) #undef SWAPPED_BYTE_ORDER - TEST(@"-[MD5Hash]", [C(@"asdfoobar").MD5Hash + TEST(@"-[stringByMD5Hashing]", [C(@"asdfoobar").stringByMD5Hashing isEqual: @"184dce2ec49b5422c7cfd8728864db4c"]) - TEST(@"-[RIPEMD160Hash]", [C(@"asdfoobar").RIPEMD160Hash + TEST(@"-[stringByRIPEMD160Hashing]", + [C(@"asdfoobar").stringByRIPEMD160Hashing isEqual: @"021d773b0fac06eb6755ca6aa58a580c980f7f13"]) - TEST(@"-[SHA1Hash]", [C(@"asdfoobar").SHA1Hash + TEST(@"-[stringBySHA1Hashing]", [C(@"asdfoobar").stringBySHA1Hashing isEqual: @"f5f81ac0a8b5cbfdc4585ec1ad32e7b3a12b9b49"]) - TEST(@"-[SHA224Hash]", [C(@"asdfoobar").SHA224Hash - isEqual: - @"5a06822dcbd5a874f67d062b80b9d8a9cb9b5b303960b9da9290c192"]) - - TEST(@"-[SHA256Hash]", [C(@"asdfoobar").SHA256Hash isEqual: - @"28e65b1dcd7f6ce2ea6277b15f87b913" - @"628b5500bf7913a2bbf4cedcfa1215f6"]) - - TEST(@"-[SHA384Hash]", [C(@"asdfoobar").SHA384Hash isEqual: - @"73286da882ffddca2f45e005cfa6b44f3fc65bfb26db1d08" - @"7ded2f9c279e5addf8be854044bca0cece073fce28eec7d9"]) - - TEST(@"-[SHA512Hash]", [C(@"asdfoobar").SHA512Hash isEqual: - @"0464c427da158b02161bb44a3090bbfc594611ef6a53603640454b56412a9247c" - @"3579a329e53a5dc74676b106755e3394f9454a2d42273242615d32f80437d61"]) + TEST(@"-[stringBySHA224Hashing]", [C(@"asdfoobar").stringBySHA224Hashing + isEqual: @"5a06822dcbd5a874f67d062b80b9d8a9cb9b5b303960b9da9290c192" + ]) + + TEST(@"-[stringBySHA256Hashing]", [C(@"asdfoobar").stringBySHA256Hashing + isEqual: @"28e65b1dcd7f6ce2ea6277b15f87b913628b5500bf7913a2bbf4cedc" + @"fa1215f6"]) + + TEST(@"-[stringBySHA384Hashing]", [C(@"asdfoobar").stringBySHA384Hashing + isEqual: @"73286da882ffddca2f45e005cfa6b44f3fc65bfb26db1d087ded2f9c" + @"279e5addf8be854044bca0cece073fce28eec7d9"]) + + TEST(@"-[stringBySHA512Hashing]", [C(@"asdfoobar").stringBySHA512Hashing + isEqual: @"0464c427da158b02161bb44a3090bbfc594611ef6a53603640454b56" + @"412a9247c3579a329e53a5dc74676b106755e3394f9454a2d4227324" + @"2615d32f80437d61"]) cs = [OFCharacterSet characterSetWithCharactersInString: @"abfo'_~$๐Ÿ"]; TEST(@"-[stringByURLEncodingWithAllowedCharacters:]", [[C(@"foo\"ba'_~$]๐Ÿ๐ŸŒ") stringByURLEncodingWithAllowedCharacters: cs] isEqual: @"foo%22ba'_~$%5D๐Ÿ%F0%9F%8D%8C"])