qca/TODO

136 lines
4.7 KiB
Plaintext
Raw Normal View History

* update the README
* special thanks to Jack Lloyd
* mac universal binary support?
* be sure to turn ALL .pro files (examples, everything) on release mode
* option to build qca with simultaneous debug and release, similar to qt?
* API documentation
think about documenting the various providers (qcaprovider.h)
Change Doxyfile config to capture whole API, and to generate Latex manual.
* beta4
api:
some functions report availability of "sub"features without having context
with a specific provider (that is, the functions are not members of an
instance owned by a provider, nor is a provider necessarily specified
as an argument to the function). in these cases, if a feature is
reported as being available, it is not clear how the app can actually
use the feature. For example, if the static method TLS::canCompress()
returns true, it is entirely possible that when the application creates
a "new TLS;" instance, it won't be served by a provider that supports
compression. possibly offending functions:
qca_publickey.h:
supportedGroupSets
supportedTypes
supportedIOTypes
supportedPBEAlgorithms
qca_cert.h:
canUseFormat
canUsePKCS7
qca_securelayer.h
supportedCipherSuites
canCompress
cert extensions
fixup subjectInfoOrdered to handle all DN parts (oids) ?
crl URIs
policy info beyond OID
OCSP ?
random: either find a way to always provide good random numbers,
or add an indicator as to whether the numbers can be
trusted.
tls extensions: hostname and ocsp stapling
tls: SSL_get_client_CA_list
QSecureArray/QBigInteger -> QCA::SecureArray/QCA::BigInteger ?
alon: convertToPublic should return a publickey rather than clone?
ability to create PKCS#1 without using direct low level crypto.
reporting diagnostic text at the provider level?
EmailAlt, don't merge with Email when using CertificateInfoOrdered
friendly entry name generator for certs
ability to convert infoOrdered to DN-string
document which functions might cause a synchronous asker?
code:
keystore async mode
keystore watcher
fix the locking stuff in qca_core
allow logger to be used from anywhere
global random thread-safety?
tls/sasl
dirwatch: thread safety
dirwatch: test on all platforms
qca-openssl: ca signing
synchronizer should lazy-start the thread
proper parenting of all objects
qca-gnupg: ignore newlines from passphrase, to avoid advancing command-fd
qca-cyrussasl: make this plugin (use misha's patch to qca-sasl)
sasl example
qcatool TODOs
constraints stuff seems messed up. why are constraints auto-added by
qca-openssl?
qca-cyrus-sasl:
there's a problem where we can create the provider, and not create
a saslContext, and then the destructor depends on uninitialised values
(to see this, valgrind staticunittest).
other:
krazy warnings
Update to latest Botan, and remake the botantools patch as appropriate
- remove u32bit miller_rabin_test_iterations(u32bit bits, bool verify)
ability to compile plugins in statically (check 'plugins' subdir)
* test1
code:
core: properties
cert: rfc 2818 hostname validation
publickey/cert cleanup
securemessage
tls
sasl
keystore: cleanup
don't allow smart card providers to be used by default
* Considerations
api:
Q_DISABLE_COPY on some objects
give all classes non-default ctors/dtors/copy/op=, and dpointers?
add more "getters" to the library?
don't forget to QCA_EXPORT everything
it's possible we use QSecureArray in some unnecessary places
other:
add more asserts
standardize on count() vs size() when iterating?
printf + latin1()/toLatin1() -> qPrintable() ? (in code/examples/docs/etc)
* examples
create example for BigInteger
create example for OpenPGP
create example for CMS
fix SASL examples (client and server)
* Additional unit tests (using QTestLib):
- OpenPGP
- CMS
- TLS ?
- SASL ?
- QPipe
- FileWatch / DirWatch
- Complete the pkits tests
* write plugin support
qca-botan: implement
qca-egads (or qca-egd): implement for Random support
* possibilities for the future:
internally managed intermediate object storage
securemessage: algorithm selection for cms/pgp (and use SecurityLevel?)
tls: renegotiation
Key wrapping - RFC3217 and RFC3394
quoted-printable TextFilter
keygen on smart cards
keystore: symmetric keys, arbitrary app data
cms: fine-grained control over smime attribs
providers for:
Mozilla NSS
Windows CryptoAPI
Linux kernel crypto support, if the userspace API ever gets sorted out
Intel Performance Primatives library