In my SSL/Crypto library I have attempted to always prefix my routines with something that makes sense. If the prefix is upper case, you can use it, if it is lower case, I would prefer you not to use it. The exception to this rule is the DES and LHASH libraries which I wrote quite some time ago, before this current project swallowed them into the fold :-) Often the prefixes may not make much sense; too bad :-). The documents can be groups as follows Secret Ciphers D DES - DES cipher. D IDEA - IDEA cipher. D RC4 - RC4 cipher. D RC2 - RC2 cipher. Message Digests D MD2 - MD2 message digest algorithm D MD5 - MD5 message digest algorithm plus random number routines. D SHA - The Secure Hash Algorithm. Public Key Ciphers DE BN - The BigNum library that RSA and DH use. DE DH - Diffel-Hellman key exchange routines. DE RSA - RSA public key routines. D DHA - The Digital Signature Algorithms RSAref - Routine to replay my library with RSAref. Higher Level Crypto Routines DE CIPHER - Encryption by parts. DE DIGEST - Message digesting by parts. DE SIGN - Sign a message with a private key. DE VERIFY - Verify a signature. DE SEAL - Digitally Seal some data. DE OPEN - Open sealed data. Certificates ENCODE - Base64 encoding by parts. E X509 - X509 certificates and manipulation. * PKCS7 - PKCS7 routines E PEM - PEM type routines Data Types DE OBJ - Object lookup routines. D LHASH - Hashing table routines. E BUFFER - Memory buffer routines. E STACK - A 'stack' implementation. Error Routines D ERR - Error functions. Network Protocols E SSL - Netscapes SSL protocol. .