work with CURVE security certificates
    
        Create and initialize a new certificate in memory
    
    
        Accepts public/secret key pair from caller
        
        
    
    
        Load certificate from file
        
    
    
        Destroy a certificate in memory
    
    
        Return public part of key pair as 32-byte binary string
        
    
    
        Return secret part of key pair as 32-byte binary string
        
    
    
        Return public part of key pair as Z85 armored string
        
    
    
        Return secret part of key pair as Z85 armored string
        
    
    
        Set certificate metadata from formatted string.
        
        
    
    
        Unset certificate metadata.
        
    
    
        Get metadata value from certificate; if the metadata value doesn't
        exist, returns NULL.
        
        
    
    
        Get list of metadata fields from certificate. Caller is responsible for
        destroying list. Caller should not modify the values of list items.
        
    
    
        Save full certificate (public + secret) to file for persistent storage
        This creates one public file and one secret file (filename + "_secret").
        
        
    
    
        Save public certificate only to file for persistent storage
        
        
    
    
        Save secret certificate only to file for persistent storage
        
        
    
    
        Apply certificate to socket, i.e. use for CURVE security on socket.
        If certificate was loaded from public file, the secret key will be
        undefined, and this certificate will not work successfully.
        
    
    
        Return copy of certificate; if certificate is NULL or we exhausted
        heap memory, returns NULL.
        
    
    
        Return true if two certificates have the same keys
        
        
    
    
        Print certificate contents to stdout
    
    
        Self test of this class