diff --git a/key.go b/key.go
index c69a101..1d9bf45 100644
--- a/key.go
+++ b/key.go
@@ -53,7 +53,9 @@ import (
 type Method *C.EVP_MD
 
 var (
+	SHA1_Method   Method = C.EVP_sha1()
 	SHA256_Method Method = C.EVP_sha256()
+	SHA512_Method Method = C.EVP_sha512()
 )
 
 type PublicKey interface {
diff --git a/key_test.go b/key_test.go
index 54752d3..65b2071 100644
--- a/key_test.go
+++ b/key_test.go
@@ -147,3 +147,20 @@ func TestGenerate(t *testing.T) {
 		t.Fatal(err)
 	}
 }
+
+func TestSign(t *testing.T) {
+	key, _ := GenerateRSAKey(1024)
+	data := []byte("the quick brown fox jumps over the lazy dog")
+	_, err := key.SignPKCS1v15(SHA1_Method, data)
+	if err != nil {
+		t.Fatal(err)
+	}
+	_, err = key.SignPKCS1v15(SHA256_Method, data)
+	if err != nil {
+		t.Fatal(err)
+	}
+	_, err = key.SignPKCS1v15(SHA512_Method, data)
+	if err != nil {
+		t.Fatal(err)
+	}
+}