Hi Rick.
Nice library.
It is very much an enthusiasts library. What I have tried to do in both the AES128' and SHA256' threads is to present source code, warts and all, for enthusiasts to kick around and, hopefully, get back to me with better ways on both coding and features. I am mindful, however, that most folk would rather watch paint dry than get involved in crypto work but, notwithstanding that, they may have a need for some crypto stuff so the dlls that I have knocked out have been designed to be one-liners with the minimum number of parameters and rarely used or best avoided ones as optional.
I ran your library on a 100MB file and found that the AES256 encryption/decryption took about 45 seconds whereas my AuthEnc2.dll took about 10 seconds and that included a SHA512 authentication. I cannot tell from your assembly what you are using exactly. I looked at CAPICOM a liitle while ago and found that memory usage was such that I coudn't test a 100MB file with 2GB of RAM on board. I saw from Task Manager that my memory usage did not jump up to the roof with your library any more than it does with mine. If anything your set up is leaner than mine but at our levels it is not worth bothering with as stack usage and so on will differ and be significant on low memory usage overall. It would be interesting to see how your library behaved with hashing a 100MB file but I couldn't see a CRCAPI_HASH_FILE and haven't had time to write some stuff to try.
Maybe I wasn't using CAPICOM correctly because I see that you are using Base64 suggesting that you are using CAPICOM. I also see that you have SHA224 and CR6 neither of which are in the CryptoAPI.
For messages which are not large the difference between COM and raw API may not add to much and may be tolerable for small projects with large files but it may bite with large projects and large files.
Nice library.
It is very much an enthusiasts library. What I have tried to do in both the AES128' and SHA256' threads is to present source code, warts and all, for enthusiasts to kick around and, hopefully, get back to me with better ways on both coding and features. I am mindful, however, that most folk would rather watch paint dry than get involved in crypto work but, notwithstanding that, they may have a need for some crypto stuff so the dlls that I have knocked out have been designed to be one-liners with the minimum number of parameters and rarely used or best avoided ones as optional.
I ran your library on a 100MB file and found that the AES256 encryption/decryption took about 45 seconds whereas my AuthEnc2.dll took about 10 seconds and that included a SHA512 authentication. I cannot tell from your assembly what you are using exactly. I looked at CAPICOM a liitle while ago and found that memory usage was such that I coudn't test a 100MB file with 2GB of RAM on board. I saw from Task Manager that my memory usage did not jump up to the roof with your library any more than it does with mine. If anything your set up is leaner than mine but at our levels it is not worth bothering with as stack usage and so on will differ and be significant on low memory usage overall. It would be interesting to see how your library behaved with hashing a 100MB file but I couldn't see a CRCAPI_HASH_FILE and haven't had time to write some stuff to try.
Maybe I wasn't using CAPICOM correctly because I see that you are using Base64 suggesting that you are using CAPICOM. I also see that you have SHA224 and CR6 neither of which are in the CryptoAPI.
For messages which are not large the difference between COM and raw API may not add to much and may be tolerable for small projects with large files but it may bite with large projects and large files.
Comment