diff --git a/src/bin.rs b/src/bin.rs
index cec438dfcf4775ff9a2e40779b4a37c8c1957265..cdfb582cf1c83eb95d2455d611e6df6689c83f11 100644
--- a/src/bin.rs
+++ b/src/bin.rs
@@ -191,8 +191,7 @@ pub fn create(secret_path: &str, archive_path: &str, folder: &str) -> Result<(),
 
     //TODO: ensure file size matches
 
-    let sig = unsafe { sign::sign(&plain::as_bytes(&header)[64..], &secret_key) };
-    header.signature.copy_from_slice(&sig);
+    header.signature = sign::sign_detached(unsafe { &plain::as_bytes(&header)[64..] }, &secret_key).0;
 
     // Write archive header
     archive_file.seek(SeekFrom::Start(0))
diff --git a/test.sh b/test.sh
index 83304c21050f7b21b81558e067e0d95ad22ac1b8..b4f41dc11206db926fd58eb738999d11d8559431 100755
--- a/test.sh
+++ b/test.sh
@@ -1,27 +1,37 @@
 #!/usr/bin/env bash
 
+build=release
+if [[ "$1" == "-d" ]]; then
+    build=debug
+fi
+
 set -ex
 
 rm -rf target/test
 mkdir -p target/test
 
-cargo build --release
+if [[ "$build" == debug ]]; then
+    cargo build
+else
+    cargo build --release
+fi
 
-time target/release/pkgar \
+time target/$build/pkgar \
     keygen \
     --secret target/test/secret.key \
     --public target/test/public.key
 
-time target/release/pkgar \
+time target/$build/pkgar \
     create \
     --secret target/test/secret.key \
     --file target/test/src.pkg \
     src
 
-time target/release/pkgar \
+time target/$build/pkgar \
     extract \
     --public target/test/public.key \
     --file target/test/src.pkg \
     target/test/src
 
 diff -ruwN src target/test/src
+