   return 0
 }
 
-func crypto_sign_open(_ m: inout [Int], _ sm:[Int], _ _n:Int, _ pk:[Int]) -> Int {
-  var t = [Int](repeating: 0, count: 32)
-  var h = [Int](repeating: 0, count: 64)
+func crypto_sign_open(_ m: inout [UInt8], _ sm:[UInt8], _ _n:Int, _ pk:[UInt8]) -> Int {
+  var t = [UInt8](repeating: 0, count: 32)
+  var h = [UInt8](repeating: 0, count: 64)
   var p: [[Int64]] = [gf(), gf(), gf(), gf()]
   var q: [[Int64]] = [gf(), gf(), gf(), gf()]
   var n = _n

  return z
}

func curve25519_sign_open(_ m: inout [Int], _ sm: [Int], _ n: Int, _ pk: [Int]) -> Int {
  // Convert Curve25519 public key into Ed25519 public key.
  var edpk = convertPublicKey(pk)


  return smlen
}

func unpackneg(_ r:inout [[Int64]], _ p:[UInt8]) -> Int {
  var t = gf()
  var chk = gf()
  var num = gf()
