ObjFW  History of src/OFMD5Hash.m of a13251499a58bde6

History of file src/OFMD5Hash.m at check-in a13251499a58bde6

2024-04-03
02:16
Change license to LGPLv3 only file: [75a1c1c537] check-in: [7413a728a7] user: js, branch: trunk, size: 6695 [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
Update copyright file: [a06b7ae21c] check-in: [26ddd2e4e4] user: js, branch: trunk, size: 6487 [annotate] [blame] [check-ins using] [diff]
2023-01-06
09:04
Update copyright file: [f3d5c8a60c] check-in: [8939cbdb52] user: js, branch: trunk, size: 6487 [annotate] [blame] [check-ins using] [diff]
2022-03-25
10:22
OFCryptographicHash: Add -[calculate]

Before, -[digest] would do the final calculation, however, this would
mean a property modifies state, which is bad. file: [190d96fa7c] check-in: [82801897d3] user: js, branch: trunk, size: 6487 [annotate] [blame] [check-ins using] [diff]

2022-02-12
07:46
Update copyright file: [7457ae87b9] check-in: [1a86b8175b] user: js, branch: trunk, size: 6307 [annotate] [blame] [check-ins using] [diff]
2021-04-25
11:05
A few last renames file: [df0ebde97e] check-in: [27103855c2] user: js, branch: new-naming-convention, size: 6307 [annotate] [blame] [check-ins using] [diff]
2021-04-18
15:55
Rename all functions in macros.h file: [ab532b8a0a] check-in: [7392685ffc] user: js, branch: new-naming-convention, size: 6283 [annotate] [blame] [check-ins using] [diff]
2021-04-07
21:14
Rename OFCryptoHash -> OFCryptographicHash file: [2c1eebf461] check-in: [2969086342] user: js, branch: trunk, size: 6348 [annotate] [blame] [check-ins using] [diff]
2021-03-07
20:25
*.m: Fold methods into one line where it fits file: [bf7cb6efee] check-in: [1b82d3bf4f] user: js, branch: trunk, size: 6354 [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
Update copyright file: [5fb4681c4e] check-in: [374e1a1bfa] user: js, branch: trunk, size: 6358 [annotate] [blame] [check-ins using] [diff]
2020-06-28
15:03
Use OF_DIRECT(_MEMBERS) where appropriate file: [f7acc8c4b8] check-in: [b6cb3addd0] user: js, branch: trunk, size: 6447 [annotate] [blame] [check-ins using] [diff]
2020-01-02
01:51
Update copyright file: [4a0afb099d] check-in: [c7f0229795] user: js, branch: trunk, size: 6429 [annotate] [blame] [check-ins using] [diff]
2019-12-27
00:41
OFSecureData: Add allowsSwappableMemory property

With this property, it's possible to specify whether the memory should
be protected from swapping or not. This makes it easier for e.g. the
crypto hash classes: They can now just always use OFSecureData without
wasting unswappable memory if it's not needed. file: [cf3dfa1284] check-in: [e629dc83a9] user: js, branch: trunk, size: 6426 [annotate] [blame] [check-ins using] [diff]

2019-03-12
22:10
OFCryptoHash: Add property for digest / block size file: [fabee7cd05] check-in: [320d638a21] user: js, branch: trunk, size: 5997 [annotate] [blame] [check-ins using] [diff]
2019-03-08
00:35
Use dot syntax file: [d8543cb4a1] check-in: [bceb7ed4c9] user: js, branch: trunk, size: 5842 [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
Update copyright file: [7e71ee5050] check-in: [0509d7a844] user: js, branch: trunk, size: 5832 [annotate] [blame] [check-ins using] [diff]
2018-04-07
20:05
OF*Hash: Make use of the new OFSecureData file: [6abd20d9a3] check-in: [a5006f1d31] user: js, branch: trunk, size: 5826 [annotate] [blame] [check-ins using] [diff]
2018-01-03
19:49
Update copyright notice file: [50d4eb76c2] check-in: [7e5c81e186] user: js, branch: trunk, size: 5180 [annotate] [blame] [check-ins using] [diff]
2017-10-17
00:33
Do not use implicit method return types

Instead, explicitly declare them, as OF_ASSUME_NONNULL_{BEGIN,END} does
not apply to implicit return types. This means that after this commit,
all init methods have a nonnull return type, as they should have. file: [2136f8a2ba] check-in: [2f4e0df8be] user: js, branch: trunk, size: 5157 [annotate] [blame] [check-ins using] [diff]

2017-05-21
21:28
Prefix private methods with of_ instead of OF_

This matches Apple's style. file: [5fa8ef5288] check-in: [6b77a5dd8b] user: js, branch: trunk, size: 5139 [annotate] [blame] [check-ins using] [diff]

2017-05-07
20:10
Small code style change

Casts are now written like types in variable declarations. file: [003b801911] check-in: [4af49a13c3] user: js, branch: trunk, size: 5086 [annotate] [blame] [check-ins using] [diff]

2017-01-09
17:36
Update copyright

Forgot to add 2017, even though I already did quite some changes in
2017. file: [43550851b7] check-in: [44f45c2e35] user: js, branch: trunk, size: 5082 [annotate] [blame] [check-ins using] [diff]

2016-07-24
20:05
OF*Hash: Call [self reset] in -[dealloc] file: [54019c34aa] check-in: [096dd743b5] user: js, branch: trunk, size: 5076 [annotate] [blame] [check-ins using] [diff]
18:54
OFCryptoHash: Conform to OFCopying file: [273d709ad9] check-in: [b1cd76a8cd] user: js, branch: trunk, size: 5021 [annotate] [blame] [check-ins using] [diff]
12:14
-[OFCryptoHash digest]: uint8_t -> unsigned char

While in practice they are usually the same, the C standard says that
only char does not have any alignment requirements. As (u)int*_t is
defined to be an integer type of the specified size, it does not mean
(u)int8_t needs to be char. file: [8b5373705c] check-in: [19f7dc67af] user: js, branch: trunk, size: 4755 [annotate] [blame] [check-ins using] [diff]

00:06
Rename OFHash to OFCryptoHash

OFHash is too generic, as this protocol is for cryptographic hashes. It
also solves the ambiguity of the +[hash] method (which is now
+[cryptoHash]), which conflicted with -[hash] on the class itself,
resulting in classes conforming to OFHash not being able to be used as a
key in an OFDictionary. file: [c7952ff29f] check-in: [951f530aee] user: js, branch: trunk, size: 4749 [annotate] [blame] [check-ins using] [diff]

2016-02-21
15:37
Make use of C99-style for loops file: [5a22333932] check-in: [e0b9167693] user: js, branch: trunk, size: 4741 [annotate] [blame] [check-ins using] [diff]
2016-01-05
22:00
(u)int_fast*_t -> (u)int*_t

(U)INT_FAST*_MAX is broken on Android, which makes (u)int_fast*_t
dangerous to use while it does not provide any real speed benefit. file: [76a6936277] check-in: [d3158d091f] user: js, branch: trunk, size: 4746 [annotate] [blame] [check-ins using] [diff]

2016-01-03
00:43
Update copyright

While at it, also update the mail address. file: [474dff4b31] check-in: [cec0f072f8] user: js, branch: 0.8, size: 4769 [annotate] [blame] [check-ins using] [diff]

00:41
Update copyright

While at it, also update the mail address. file: [e0bf0902f7] check-in: [2a27cf3000] user: js, branch: trunk, size: 4761 [annotate] [blame] [check-ins using] [diff]

2015-11-29
11:43
Make properties a requirement and clean up code

This increases the required GCC version from 4.0 to 4.6 (exception:
Apple GCC, which already supports this with >= 4.0 starting with OS X
10.5). Since even GCC 4.6 is really old by now, there is no point in
still supporting something even older and making the code ugly because
of that. While some hardware and OS support was dropped from GCC 4.6
compared to GCC 4.0, there is nothing in there that would be an
interesting target with the exception of BeOS maybe - but a port to BeOS
can also be achieved using the Haiku support. The other dropped OSes are
mostly old versions of OSes while newer ones are still being supported
(and those newer versions of those OSes still support the same
hardware). file: [353f7b18b1] check-in: [48980f2297] user: js, branch: trunk, size: 4757 [annotate] [blame] [check-ins using] [diff]

2015-02-01
00:47
Add -[OFHash reset]

This is useful to calculate many hashes without allocating new objects. file: [3333d71ead] check-in: [7c27db9fe0] user: js, branch: trunk, size: 4765 [annotate] [blame] [check-ins using] [diff]

2015-01-31
11:46
OF{MD5,RIPEMD160,SHA*}Hash: Small optimization file: [4656f6b7f6] check-in: [c56b388459] user: js, branch: trunk, size: 4580 [annotate] [blame] [check-ins using] [diff]
2015-01-03
20:57
Update copyright file: [d3bf839bbd] check-in: [cfd374b906] user: js, branch: trunk, size: 4548 [annotate] [blame] [check-ins using] [diff]
2014-09-03
18:53
OFMD5Hash: Optimize by making it more readable

This has more resemblance to the implementation of the other hashes,
while the old method had more resemblance to how the algorithm is
described in the RFC.

It turns out that Clang generates better code when re-assigning all
variables to rotate them by one instead of accessing the variables by an
iteration-dependent index. file: [38980867ce] check-in: [b29adaf0bb] user: js, branch: trunk, size: 4542 [annotate] [blame] [check-ins using] [diff]

2014-09-01
11:08
Add OFSHA256Hash

Took me some time to figure out the RFC is buggy and SSIG0(t-15) should
be SSIG0(W(t-15))... file: [8c6a093adf] check-in: [46af1252a5] user: js, branch: trunk, size: 4648 [annotate] [blame] [check-ins using] [diff]

10:47
OF{MD5,SHA1}Hash: Zero _buffer when done

This way, possibly sensitive information is discarded from memory as
soon as possible. file: [210a4456e6] check-in: [23dc2c7ff8] user: js, branch: trunk, size: 4654 [annotate] [blame] [check-ins using] [diff]

2014-08-31
17:59
Rewrite OFMD5Hash

The old one was based on a public domain implementation, which is
optimized for old compilers and quite unreadable. The new one is written
from scratch and designed to be readable and to exploit optimizations of
modern compilers. file: [307a03b74d] check-in: [c4d2f177cb] user: js, branch: trunk, size: 4615 [annotate] [blame] [check-ins using] [diff]

2014-06-21
21:43
Move all macros from OFObject.h to macros.h

This means that OFObject.h imports macros.h now, making it unnecessary
to manually import macros.h in almost every file. And while at it, also
import autorelease.h in OFObject.h, so that this doesn't need to be
manually imported in almost every file as well. file: [9801b1cb04] check-in: [13ee56edf3] user: js, branch: trunk, size: 7157 [annotate] [blame] [check-ins using] [diff]

2014-01-04
00:24
Update copyright. file: [32fa8ff9bf] check-in: [3b97fc3cd9] user: js, branch: trunk, size: 7177 [annotate] [blame] [check-ins using] [diff]
2013-12-08
17:43
Clean up OFHash and the Hashing categories. file: [ffb1eddc7f] check-in: [75f2aa5096] user: js, branch: trunk, size: 7171 [annotate] [blame] [check-ins using] [diff]
2013-06-22
12:12
Rework exceptions.

This mostly removes the argument for the class in which the exception
occurred. As backtraces were recently added for all platforms, the
passed class does not give any extra information on where the exception
occurred anymore.

This also removes a few other arguments which were not too helpful. In
the past, the idea was to pass as many arguments as possible so that it
is easier to find the origin of the exception. However, as backtraces
are a much better way to find the origin, those are not useful anymore
and just make the exception more cumbersome to use. The rule is now to
only pass arguments that might help in recovering from the exception or
provide information that is otherwise not easily accessible. file: [ae6cec6554] check-in: [3d16a30f41] user: js, branch: trunk, size: 7159 [annotate] [blame] [check-ins using] [diff]

2013-03-04
17:20
Replace BOOL with bool.

The only places where BOOL is left are those where they are required by
the ABI. file: [621cd607df] check-in: [c5ef582958] user: js, branch: trunk, size: 7185 [annotate] [blame] [check-ins using] [diff]

2013-02-18
23:05
Make OFHash a protocol. file: [83d7c707b9] check-in: [9b2d255a3d] user: js, branch: trunk, size: 7184 [annotate] [blame] [check-ins using] [diff]
11:31
A few small fixes for OS X/PPC. file: [969e062cb6] check-in: [adaf5a3e6e] user: js, branch: trunk, size: 7068 [annotate] [blame] [check-ins using] [diff]
2013-02-12
18:22
Prefix all ivars with an underscore. file: [f6e92bc9b9] check-in: [e40729d406] user: js, branch: trunk, size: 7066 [annotate] [blame] [check-ins using] [diff]
2013-01-09
22:24
Update copyright. file: [b7d6fe40cf] check-in: [813c00ccf0] user: js, branch: trunk, size: 7041 [annotate] [blame] [check-ins using] [diff]
2012-10-13
21:06
of_bswap* -> OF_BSWAP*.

This makes it clear that multiple evaluation of parameters is possible. file: [233d143bc4] check-in: [1cb8fee5c3] user: js, branch: trunk, size: 7035 [annotate] [blame] [check-ins using] [diff]

2012-07-12
01:28
Don't access isa directly. file: [2ed1eeca9f] check-in: [8892ae9fcc] user: js, branch: trunk, size: 6827 [annotate] [blame] [check-ins using] [diff]
2012-07-03
20:16
OFHash: Take void* and unify convenience methods. file: [a97a93ff1c] check-in: [c1060114f6] user: js, branch: trunk, size: 6818 [annotate] [blame] [check-ins using] [diff]
2012-01-05
00:56
Update copyright. file: [919ef58dc0] check-in: [ce70e17b38] user: js, branch: trunk, size: 6842 [annotate] [blame] [check-ins using] [diff]
2011-09-22
23:25
Exceptions are now autoreleased.

This is safe as an "exception loop" can't happen, since if allocating
an exception fails, it throws an OFAllocFailedException which is
preallocated and can always be thrown.

So, the worst case would be that an autorelease of an exception fails,
triggering an OFOutOfMemoryException for which there is no memory,
resulting in an OFAllocFailedException to be thrown. file: [65056dd7ed] check-in: [e1e7ffa903] user: js, branch: trunk, size: 6836 [annotate] [blame] [check-ins using] [diff]

2011-09-19
12:34
BOOL naming conventions. file: [c4ee6e4bc8] check-in: [d43eb177bc] user: js, branch: trunk, size: 6827 [annotate] [blame] [check-ins using] [diff]
2011-05-08
13:10
Fix a typo in OFMD5Hash.m. file: [e8adf60118] check-in: [b8052b3f65] user: js, branch: trunk, size: 6833 [annotate] [blame] [check-ins using] [diff]
2011-04-22
20:19
More style improvements. file: [bbf6824f58] check-in: [e76a7f52c1] user: js, branch: trunk, size: 6830 [annotate] [blame] [check-ins using] [diff]
2011-03-25
03:14
Pass the hash for OFHashAlreadyCalculatedExceptions. file: [8c8aeaf4bf] check-in: [9d883d2ff6] user: js, branch: trunk, size: 6746 [annotate] [blame] [check-ins using] [diff]
2011-03-24
19:42
Get rid of OFExceptions.h. file: [a683cdb443] check-in: [cda44767f4] user: js, branch: trunk, size: 6726 [annotate] [blame] [check-ins using] [diff]
2011-03-22
00:55
Add -Wshorten-64-to-32. file: [7a4ccf5697] check-in: [6d4dfb5bc7] user: js, branch: trunk, size: 6704 [annotate] [blame] [check-ins using] [diff]
2011-03-11
16:44
Use a union instead of casting pointers in OF{MD5,SHA1}Hash. file: [239cec3ca7] check-in: [1d7ed6556d] user: js, branch: trunk, size: 6694 [annotate] [blame] [check-ins using] [diff]
2011-02-17
19:56
Add +[digestSize] and +[blockSize] to OFHash. file: [f05769188c] check-in: [275744ecd3] user: js, branch: trunk, size: 6753 [annotate] [blame] [check-ins using] [diff]
2011-02-01
20:53
Rename OF_BSWAP_* to of_bswap_* as they are not really macros. file: [62560185fb] check-in: [8384ca4273] user: js, branch: trunk, size: 6678 [annotate] [blame] [check-ins using] [diff]
2011-01-01
20:19
Change license. file: [25bc5c5f44] check-in: [da6b3d26cb] user: js, branch: trunk, size: 6668 [annotate] [blame] [check-ins using] [diff]
2010-10-24
13:30
Always write abbreviations uppercase in method names. file: [de7c13bd7c] check-in: [1d19a5586b] user: js, branch: trunk, size: 6412 [annotate] [blame] [check-ins using] [diff]
13:15
Rename a few methods returning BOOL. file: [e3c55f9a8d] check-in: [b6a39dd3d1] user: js, branch: trunk, size: 6412 [annotate] [blame] [check-ins using] [diff]
2010-06-12
20:47
Added: Move a few classes and categories so they have their own files. file: [063d887ad6] check-in: [67917b918a] user: js, branch: trunk, size: 6406 [annotate] [blame] [check-ins using]