Browse Source

update readme

Steven Schobert 9 năm trước cách đây
mục cha
commit
1cb700ae7c
1 tập tin đã thay đổi với 94 bổ sung1 xóa
  1. 94 1
      README.md

+ 94 - 1
README.md

@@ -1,4 +1,97 @@
 RNCryptor-go
 ============
 
-Go implementation of RNCryptor
+Go implementation of [RNCryptor](http://rncryptor.github.io).
+
+## Installation
+
+```sh
+go get github.com/stevenschobert/RNCryptor-go
+```
+
+## Example
+
+```go
+package main
+
+import(
+  "fmt"
+  "github.com/stevenschobert/RNCryptor-go"
+)
+
+func main() {
+  pass := "test"
+  data := []byte("hello world")
+
+  fmt.Printf("source: %v\n", string(data))
+
+  encrypted, _ := rncryptor.Encrypt(pass, data)
+  fmt.Printf("encrypted: %v\n", string(encrypted))
+
+  // if you need to send the encrypted data across
+  // the wire, you'll probably want to call
+  // `base64.StdEncoding.EncodeToString(encrypted)`
+  // to base64 the data rather than transmiting raw bytes
+
+  decrypted, _ := rncryptor.Decrypt(pass, encrypted)
+  fmt.Printf("decrypted: %v\n", string(decrypted))
+}
+```
+
+## API
+
+### Encrypt(password string, data []byte) ([]byte, error)
+
+Encrypts `data` using `password`. Automatically handles salting, iv-generation, and hmac signing.
+Returns the decrypted data, or an error, if encryption was unsuccessful.
+
+- Password must be at least 1 character long.
+
+```go
+encrypted, err := rncryptor.Encrypt("securepassword", []byte("some bytes to encrypt"))
+if err != nil {
+  log.Printf("error encrypting data: %v", err)
+}
+
+// from here, you can encode `encrypted` however you want
+// base64.StdEncoding.EncodeToString(encrypted)
+```
+
+### Decrypt(password string, data []byte) ([]byte, error)
+
+Decrypts `data` using `password`. Returns un-encrypted data, or an error if decryption is
+unsuccessful (e.g. password mismatch).
+
+- Password must match the password used during encryption
+
+```go
+// if the encrypted data has been encoded, you'll need to decode it first
+// base64.StdEncoding.DecodeString("base64data")
+
+decrypted, err := rncryptor.Decrypt("securepassword", []byte("encrypted bytes here"))
+if err != nil {
+  log.Printf("error decrypting data: %v", err)
+}
+```
+
+## Notes
+
+If you'd like to help with any of the items below, send a pull-request!
+
+- Only supports [version
+  3](https://github.com/RNCryptor/RNCryptor-Spec/blob/0625abe597e67af4a9a40f460a10bc069b7caf48/RNCryptor-Spec-v3.md)
+  of the RNCryptor spec.
+- Lacks [consistent-time equality
+  checking](https://github.com/RNCryptor/RNCryptor-Spec/blob/0625abe597e67af4a9a40f460a10bc069b7caf48/RNCryptor-Spec-v3.md#consistent-time-equality-checking).
+
+
+## Contributing
+
+Please read over [GitHub's guide on
+contributing](https://guides.github.com/activities/contributing-to-open-source/) if you'd like to
+lend a hand!
+
+## Credits
+
+Thanks to [Rob Napier](http://robnapier.net) and the maintainers of the various
+[RNCryptor implementations](https://github.com/RNCryptor) for all their hard work!