diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ba752cf
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+# Created by .ignore support plugin (hsz.mobi)
+.idea/ed25519.iml
+.idea/inspectionProfiles/
+.idea/modules.xml
+.idea/workspace.xml
+cmake-build-debug/
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..30aa626
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..8f1a3b7
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..79b3c94
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..2842279
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,19 @@
+project(ed25519)
+
+set(SOURCE
+ src/add_scalar.c
+ src/fe.c
+ src/ge.c
+ src/key_exchange.c
+ src/keypair.c
+ src/sc.c
+ src/seed.c
+ src/sign.c
+ src/verify.c
+ src/sha512.c
+)
+
+add_library(ed25519 STATIC ${SOURCE})
+
+add_executable(ed25519_test test.c)
+target_link_libraries(ed25519_test ed25519)
\ No newline at end of file
diff --git a/ed25519_32.dll b/ed25519_32.dll
deleted file mode 100644
index 80a61c3..0000000
Binary files a/ed25519_32.dll and /dev/null differ
diff --git a/ed25519_64.dll b/ed25519_64.dll
deleted file mode 100644
index 6964679..0000000
Binary files a/ed25519_64.dll and /dev/null differ
diff --git a/src/sha512.h b/src/sha512.h
index a34dd5e..3cb7833 100644
--- a/src/sha512.h
+++ b/src/sha512.h
@@ -13,7 +13,6 @@ typedef struct sha512_context_ {
} sha512_context;
-int sha512_init(sha512_context * md);
int sha512_final(sha512_context * md, unsigned char *out);
int sha512_update(sha512_context * md, const unsigned char *in, size_t inlen);
int sha512(const unsigned char *message, size_t message_len, unsigned char *out);