function KeyPair(eddsa, params) {
  this.eddsa = eddsa;
  this._secret = parseBytes(params.secret);
  if (eddsa.isPoint(params.pub))
    this._pub = params.pub;
  else
    this._pubBytes = parseBytes(params.pub);
}
@param {EDDSA} eddsa - instance
@param {Object} params - public/private key parameters

@param {Array<Byte>} [params.secret] - secret seed bytes
@param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
@param {Array<Byte>} [params.pub] - public key point encoded as bytes