cryptsystem_64.ml 1.73 KB
Newer Older
gerd's avatar
gerd committed
1
(* $Id: cryptsystem_64.ml,v 1.2 2001/03/10 16:43:21 gerd Exp $
gerd's avatar
gerd committed
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
 * ----------------------------------------------------------------------
 * This module is part of the cryptgps package by Gerd Stolpmann.
 *)

(* The module type of a cryptsystem using 64 bit block ciphers. *)

module type T =
  sig
    
    type key
      (* This is the internal, often preprocessed representation of keys. *)

    val encrypt_ecb : 
	key -> (int * int * int * int) -> (int * int * int * int)
      (* This is the ECB mode of the encryption function. The four ints
       * are numbers from 0 to 65535, and given from MSB to LSB.
       *)

gerd's avatar
gerd committed
20 21 22 23
    val encrypt_ecb_int32 : 
	key -> int32 -> int32 -> int32 ref -> int32 ref -> unit
      (* The same as encrypt_ecb, but with an int32 interface *)

gerd's avatar
gerd committed
24 25 26 27 28 29
    val decrypt_ecb : 
	key -> (int * int * int * int) -> (int * int * int * int)
      (* This is the ECB mode of the decryption function. The four ints
       * are numbers from 0 to 65535, and given from MSB to LSB.
       *)

gerd's avatar
gerd committed
30 31 32 33
    val decrypt_ecb_int32 : 
        key -> int32 -> int32 -> int32 ref -> int32 ref -> unit
      (* The same as decrypt_ecb, but with an int32 interface *)

gerd's avatar
gerd committed
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
    val prepare : string -> key
      (* Prepares the string representation of a key. *)

    val textkey : key -> string
      (* Gets the string representation back *)

    val is_weak : key -> bool
      (* Determines whether the key is known as being weak. Do not use
       * such keys.
       *)
  end
;;
                             


(* ======================================================================
 * History:
 * 
 * $Log: cryptsystem_64.ml,v $
gerd's avatar
gerd committed
53 54 55
 * Revision 1.2  2001/03/10 16:43:21  gerd
 * 	int32 experiments
 *
gerd's avatar
gerd committed
56 57 58 59 60
 * Revision 1.1  1999/06/04 20:42:01  gerd
 * 	Initial revision.
 *
 * 
 *)