Go to slide 21

class CryptKey {
  public:
    virtual int            blockLength() const = 0;
    virtual int            keyLength() const = 0;

    virtual void           set(const unsigned char *key) = 0;

    virtual unsigned char  *encrypt(const unsigned char *ptext,
                             unsigned char *ctext) const = 0;

    virtual unsigned char  *decrypt(const unsigned char *ctext,
                             unsigned char *ptext) const = 0;
};