sig
  type key = {
    size : int;
    n : string;
    e : string;
    d : string;
    p : string;
    q : string;
    dp : string;
    dq : string;
    qinv : string;
  }
  val wipe_key : Cryptokit.RSA.key -> unit
  val new_key :
    ?rng:Cryptokit.Random.rng -> ?e:int -> int -> Cryptokit.RSA.key
  val encrypt : Cryptokit.RSA.key -> string -> string
  val decrypt : Cryptokit.RSA.key -> string -> string
  val decrypt_CRT : Cryptokit.RSA.key -> string -> string
  val sign : Cryptokit.RSA.key -> string -> string
  val sign_CRT : Cryptokit.RSA.key -> string -> string
  val unwrap_signature : Cryptokit.RSA.key -> string -> string
end