version of openpgpsdk, and will replace it. Differences between netpgp
and the NetBSD repository version of openpgpsdk are:
+ Wrap source code in GNU autoconf/configure
+ New high-level interface for libnetpgp(3) and netpgp(1)
+ Hide prolifery of local headers in the internal lib directory -
there is now one exported header called netpgp.h
+ Hide all ops_* functions and structs behind __ops_* names
+ Fix long-standing bug - make decryption work with files > 8192 bytes
(fix for signature verification of signed files > 8192 bytes was already
brought forward from the NetBSD repository of openpgpsdk)
+ Use mmap(2) to read files, falls back to read(2) if can't do mmap
+ Compile portable package using libtool
+ Rationalise the number of source files - merge a number of smaller ones
+ Case-insensitive matching of key ids
+ Use PRIsize throughout
+ Use calloc(3) throughout to zero memory
+ Get rid of global symbols which abused a macro
+ Use more descriptive names - remove "_arg_" components, name things for their
purpose, rather than what they are (their type)
+ No more --passphrase= argument to netpgp(1) - this is now always
done through callbacks
+ Report source code date and build date in version number, as well as the
version number itself
This will form the basis of the portable netpgp package.
Print out the version number of the openpgpsdk library when showing the
version string.
Parse the existing ~/.gnupg/gpg.conf to get the default user id, if any.
Use the actual size of the arrays in snprintf(), rather than a size which
may or may not be accurate.
Get rid of an unused 8K array on the stack - it's not needed.
the size we've allocated; instead, if the current size is more than 8 MiB,
then add 1 MiB on; current behaviour remains unchanged for re-allocations
less than 8 MiB.
Sort option descriptions.
Describe --passphrase, while it still is supported.
Use more markup.
Comment out block of text that didn't make sense to me in the context.
Punctuation improvements.
all contributions gratefully received.
Also add a convenience header file, which includes the other necessary
openpgpsdk header files - this means that
#include <openpgpsdk/openpgpsdk.h>
will get all the necessary definitions and declarations.
but it seems not).
Bump default number of bits from 1024 to 2048.
Add --armor as a synonym for --armour, and prepare for the great spelling war
of 2009.
Always print fingerprint information for keys when listing them.
Always display the publick key algorithm used (because of a bug, the
algorithm name was being ignored, rather than printed out).
With thanks to uwe for the information to make this portable.
Expose the ops_memory_t structure, since we're now using it outside
its own source file.
Various cosmetic changes, mainly for debugging purposes.
than 8192 bytes long, as the callback data simply assigns any data it
receives to a buffer, and then calls the hash function on that buffer
when EOF is reached.
Use an inefficient temporary workaround for this by holding the memory
in a temporary buffer in the callback argument structure.
argument, they take an *int, and those are not necessarily compatible.
Papering that over with a cast just gets us a warning that
de-referencing a type-punned pointer will break strict-aliasing
rules, which is turned into an error by our WARNS setting.
Instead, change the "num" field in _opt_crypt_t from size_t to int, and
get rid of the now-redundant casts.
when matching userid, cheecck if the given userid has a '@' in it.
If so, treat it as an email address, and search for a case-insensitivee
match for the text in between '<' and '>' delimiters.
Otherwise, look for a case insensitive match on the full name.
library.
A good signature verification now shows the filename, time of signing,
and the public keys of the signatories.
Made the interface much more standard by using any argv components after
the options have been parsed to indicate files, rather than a single
--file=filename long option.
Get rid of all assert() calls in the program - dumping core when an
argument is missing is a trifle uncompromising.
When matching userids, if the given userid contains a '@' character,
consider all characters from the rightmost '<' to the terminating
'>' of the file-based userid to be an email address. If there's no
'@' character, consider the given name as a real name, and match
from the start of the file-based userid. All comparisons are done
using case-insensitive searching. I'll consider implementing regexp
matching when enough chocolate bribes are received.
Rework the internals to call a major internal function, rather than doing
everything in main().
Run the results of all this through indent, since the current sources
bear little resemblance to what went before.
(not such a great idea), use getpass() to get the passphrase.
Various debugging additions.
When verifying files, print out the file name which was verified, and exit
with either EXIT_FAILURE or EXIT_SUCCESS, depending upon the verification
result. This still needs to be reworked to print out the signatory to the
file, and the date of signing.
that key ring. If no key ring has been specified, list the keys in
the default public key ring, rather than dying with a usage message.
Matches gpg behaviour, and stops openpgp violating the POLA.
static variable and recompiling. Make this a bit more dynamic, adding a
--debug "filename" argument to the application, and by using a filename-
based debug framework to replicate previous behavior. Multiple filenames
can be provided.
In addition, add more debugging information by printing out the human
values of signature type and key algorithm when parsing packets.
header file that is meant to be local, so that it can access the content
type of a packet. This change uses an accessor function to find the packet
content type.