When setting message text, make sure the minimal size is set accurately.
This ensures that even if Wrap() fails to do its job (which it may for
some languages that don't use spaces, e.g. Chinese, Japanese or Thai),
the text won't be cut off. The window may look a bit too wide and ugly,
but that's far better than not having the text shown fully.
Fixes#261.
The wrapping algorithm used is native and doesn't correctly handle
languages that don't use spaces.
To accomodate this, manually break particularly long, spaceless strings
in Chinese and Japanese appropriately.
See #261.
CryptBinaryToString() returns, when passed aNULL buffer, not size of the
encoded string, but size of the buffer requires, i.e. including the
trailing null.
The code incorrectly used this value to as std::string's size, resulting
in embedded trailing null in the output.
Fix by sizing the string properly. Note that this is safe in C++17,
which we rely on by using non-const data(): the buffer returned by
data() is guaranteed to be terminated with a trailing '\0' and this
value is writeable, as long as the value written is '\0' - which is what
CryptBinaryToString() will do.
Fixes#289.
For maximum compatibility, accept EdDSA private keys in the format used
by older versions of Sparkle, where private and public keys derived by
ed25519_create_keypair() were stored concatenated.
WinSparkle and new versions of Sparkle store just the seed as the
private key, but it's useful to be able to use Sparkle keys generated
some time ago with WinSparkle.
Add a tool for performing tasks such as signing, creating keys etc.
This is just a skeleton to include it in the build system, doesn't yet
implement any meaningful functionality.
Replace the icon with a custom-designed one.
Include all sizes as well as an ICO file. Note that the 256px size in
the ico is slightly lossy compressed to keep the size down. All sizes
are PNGs (supported since Windows Vista) and built using
https://gist.github.com/vslavik/6ca955b60d09a92bd39a28b2187fb0f9
Mark win_sparkle_set_dsa_pub_pem() as deprecated.
Document that DSA signatures are ignored if EdDSA public key is set.
Output runtime warning when DSA signatures are used for checking.