Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Grammar and formatting changes #558

Merged
merged 17 commits into from
Nov 29, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ assignees: ''
---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
A clear and concise description of the problem, e.g.: “I’m always frustrated when [...].”

**Describe the solution you'd like**
**Describe the solution you'd like to see**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
Add any other context or screenshots related to this feature request.
17 changes: 8 additions & 9 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
# Contributing to Themis

Themis is an open-source, Apache 2 licensed software, maintained by [Cossack Labs](https://www.cossacklabs.com) for building reliable cryptography in our products: [Acra](https://www.github.com/cossacklabs/acra), [Hermes](https://www.cossacklabs.com/hermes) and [Toughbase](https://www.cossacklabs.com/toughbase). You can hack it any way you want and contribute things back if you need something more than what we provide. As a development company, we focus on implementing features that are important to our products but would gladly spend some time to make Themis useful for everybody.
Themis is an open-source, Apache 2 licensed software, maintained by [Cossack Labs](https://www.cossacklabs.com) for building reliable cryptography in our products: [Acra](https://www.github.com/cossacklabs/acra), [Hermes](https://www.cossacklabs.com/hermes), and [Toughbase](https://www.cossacklabs.com/toughbase). You can hack it in any way you want and contribute things back if you need something more than what we provide. As a development company, we focus on implementing features that are important to our products but would gladly spend some time to make Themis useful for everybody.

We highly encourage you to:

- Report any bugs and request features via [GitHub Issues](https://github.com/cossacklabs/themis/issues).
- Report a bug and fix it with a patch via our [GitHub Pull request](https://github.com/cossacklabs/themis/pulls) (after issuing a corresponding issue and leaving a link to pull there).
- Participate in the theoretical development and design of Themis in the corresponding [Google Group](https://groups.google.com/d/forum/devthemis).
karenswry marked this conversation as resolved.
Show resolved Hide resolved
- Add something new to Themis. There is a certain design scheme according to which we'd like to keep developing Themis, and if your contributions fall along with it, we'd be more than glad to accept some fundamental additions. It's better to discuss the subject using [email](mailto:[email protected]) or our Google Group before taking action.
- Report bugs that you have fixes with a patch via [GitHub Pull request](https://github.com/cossacklabs/themis/pulls) (after issuing a corresponding issue and leaving a link to pull there).
- Add something new to Themis. There is a certain design scheme according to which we'd like to keep developing Themis. If your contributions fall along with it, we'd be more than glad to accept some fundamental additions. It's better to discuss the subject using [email](mailto:[email protected]) before taking action.


Every commit that goes into the master branch is audited and reviewed by somebody from Cossack Labs, so don't be surprised if it takes longer than you expect.

## "I'd like to help somehow, but don't know what will be useful. What should I do?"

There's a Development [status page](https://github.com/cossacklabs/themis/wiki/Development-status), which displays what we're working on right now and what critical stuff is not there yet. If you'd like to take over any of those tasks, get in touch or just raise an issue and work on it.
There's a Development [status page](https://docs.cossacklabs.com/pages/documentation-themis/#development-status), which displays what we're working on right now and what critical stuff is not there yet. If you'd like to take over any of those tasks, get in touch or just raise an issue and work on it.

If you'd like to do independent parts (implement new procedures/objects, do a language wrapper or a set of examples for languages or architectures we don't have and don't even plan yet) — just go ahead and let us know when you finish.
If you'd like to do independent parts (implement new procedures/objects, create a language wrapper or a set of examples for languages or architectures we don't have and don't even plan yet) — just go ahead and let us know when you finish.

If you'd like to participate in the core development more closely, get in touch.
If you'd like to participate in the core development more closely, [get in touch](mailto:[email protected]).

### Getting in touch

- Requests/bugfixes/queries should go through [Github Issues](https://github.com/cossacklabs/themis/issues)
- In-depth discussions, help in using Themis, and possible ways of collaboration can be found in our [Google Group](https://groups.google.com/d/forum/devthemis).
- Requests/bugfixes/queries should go through [GitHub Issues](https://github.com/cossacklabs/themis/issues)
- To reach the developers, use [[email protected]](mailto:[email protected]).
- See more information on contributing on our [Documentation Server/Contributing, contacts, assistance](https://docs.cossacklabs.com/pages/documentation-themis/#contributing-contacts-assistance).
- To talk to the business wing of Cossack Labs, drop us an email to [[email protected]](mailto:[email protected]).
11 changes: 5 additions & 6 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
Full cool documentation is available in our [wiki](https://github.com/cossacklabs/themis/wiki).
For offline use you might want to:
The complete and frequently updated [documentation for Themis]( https://docs.cossacklabs.com/products/themis/) (and other Cossack Labs products) can be found on the [Cossack Labs Documentation Server](https://docs.cossacklabs.com/).

![Cossack Labs Docserver](https://www.cossacklabs.com/files/img/cossack-labs-docserver-main-img.png)

This folder contains examples and [links to tutorials and sample apps](https://github.com/cossacklabs/themis/tree/master/docs/examples) for all the platforms that Themis works on.

```
git clone https://github.com/cossacklabs/themis.wiki.git
```

This folder contains examples and, in nearest future, will contain tutorials/demo apps for all platforms Themis works on.
10 changes: 7 additions & 3 deletions docs/examples/README.MD
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
# Examples

- **[Themis-Server](https://github.com/cossacklabs/themis/tree/master/docs/examples/Themis-server)**: examples for Secure Session and Secure Message, specifically tailored to talk to [Themis Server](https://themis.cossacklabs.com/), available for most languages.
- **[Themis-Server](https://github.com/cossacklabs/themis/tree/master/docs/examples/Themis-server)**: examples for Secure Session and Secure Message, specifically tailored to talk to interactive [Themis Server](https://docs.cossacklabs.com/simulator/interactive/), available for most languages.

- **Language-specific examples** that illustrate using Themis Secure Cell, Secure Message, Secure Session.
- **Language-specific examples**: illustrate usage of Themis [Secure Cell](https://docs.cossacklabs.com/pages/secure-cell-cryptosystem/), [Secure Message](https://docs.cossacklabs.com/pages/secure-message-cryptosystem/), [Secure Session](https://docs.cossacklabs.com/pages/secure-session-cryptosystem/), [Secure Comparator](https://docs.cossacklabs.com/pages/secure-comparator-cryptosystem/).

## On Themis Server (Interactive Simulator)

Read more about using [Themis Server (Interactive Simulator)](https://docs.cossacklabs.com/simulator/interactive/) in the [documentation](https://docs.cossacklabs.com/pages/using-themis-server/).

# Tutorials and sample apps

Numerous [tutorials](https://github.com/cossacklabs/themis#tutorials) and [sample applications](https://github.com/cossacklabs/themis#sample-projects) are available.

# Tests

Actually, [unit and integration tests](https://github.com/cossacklabs/themis/tree/master/tests) used to verify Themis are good examples themselves.
[Unit and integration tests](https://github.com/cossacklabs/themis/tree/master/tests) used for verifying Themis are good examples as they are.
89 changes: 34 additions & 55 deletions docs/examples/rust/README.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,19 @@
Here we have some examples of Themis usage.

* [**keygen**](keygen.rs) —
a tool for generating ECDSA keys (usable by other examples)
* [**secure_cell**](secure_cell.rs) —
simple file encryption/decryption based on Secure Cell
* [**secure_compare**](secure_compare.rs) —
zero-knowledge secret comparison based on Secure Comparator
* <b>secure_message_*</b> —
secure group chat implemented with Secure Messages
* [**secure_message_server**](secure_message_server.rs) —
simple relay server
* [**secure_message_client_encrypt**](secure_message_client_encrypt.rs) —
chat client which encrypts messages
* [**secure_message_client_verify**](secure_message_client_verify.rs) —
chat client which signs and verifies messages
* <b>secure_session_echo_*</b> —
an example of secure network communication with Secure Session
* [**secure_session_echo_client**](secure_session_echo_client.rs) —
simple echo client using buffer-oriented API
* [**secure_session_echo_server**](secure_session_echo_server.rs) —
simple echo server using callback API

You can run the examples with Cargo like this:
# Rust examples

In this directory, we have some examples of Themis usage.

* [**keygen**](keygen.rs) — a tool for generating ECDSA keys (usable by other examples).
* [**secure_cell**](secure_cell.rs) — simple file encryption/decryption based on [Secure Cell](https://docs.cossacklabs.com/pages/secure-cell-cryptosystem/).
* [**secure_compare**](secure_compare.rs) — zero-knowledge secret comparison based on [Secure Comparator](https://docs.cossacklabs.com/pages/secure-comparator-cryptosystem/).
* <b>secure_message_*</b> — secure group chat implemented with [Secure Message](https://docs.cossacklabs.com/pages/secure-message-cryptosystem/)
* [**secure_message_server**](secure_message_server.rs) — simple relay server.
* [**secure_message_client_encrypt**](secure_message_client_encrypt.rs) — chat client which encrypts messages.
* [**secure_message_client_verify**](secure_message_client_verify.rs) — chat client which signs and verifies messages.
* <b>secure_session_echo_*</b> — an example of secure network communication with [Secure Session](https://docs.cossacklabs.com/pages/secure-session-cryptosystem/).
* [**secure_session_echo_client**](secure_session_echo_client.rs) — simple echo client using buffer-oriented API.
* [**secure_session_echo_server**](secure_session_echo_server.rs) — simple echo server using callback API.

This is how you can run the examples using Cargo:

```
$ cargo run --example keygen -- --help
Expand All @@ -45,31 +37,24 @@ Note that the arguments are passed after `--`.

## keygen

This tool can be used to generate key files usable by other examples.

Themis supports RSA keys for some use-cases,
but most of the features expect ECDSA keys.
This tool can be used to generate key files usable for other examples.


## secure_cell

This is a simple file encryption tool.
It supports only seal mode of _Secure Cell_.
It supports only the Seal mode of _Secure Cell_.


## secure_compare

This tool can be used to compare secrets over network
without actually sharing them.
This tool can be used to compare secrets over network without actually sharing them.
It is made possible by _Secure Comparator_.

The tool includes both the server and the client
selectable via command-line.
Both accept the secrets on the _standard input_
and start comparison after input is complete
(use Ctrl-D in a typical terminal for this).
The tool includes both the server and the client selectable via command-line.
Both accept the secrets on the _standard input_ and start comparison after input is complete (use Ctrl-D in a typical terminal for this).

Typical comparison session looks like this:
A typical comparison session looks like this:

```console
$ echo "secret" | cargo run --example secure_compare -- server
Expand All @@ -86,16 +71,14 @@ secret

## secure_message

This is a more involved example of relay chat over UDP using _Secure Messages_.
It is deliberately kept simple,
but the same principle can be applied to properly framed TCP transports
This is a more complicated example of relay chat over UDP using _Secure Message_.
It is kept simple on purpose, but the same principle can be applied to properly framed TCP transports
as well as to using Tokio for async IO instead of blocking stdlib.

Usually you don’t need to specify any custom options,
the command-line defaults are expected to work right away.
Usually you don’t need to specify custom options as the command-line defaults are expected to work right away.
But you can override the defaults for port assignment and key file locations if necessary.

First you’ll need to generate the keys for clients.
First, you’ll need to generate the keys for clients.
It also may be useful to enable logging before starting the server.
This example uses [`env_logger` crate][env_logger] for logging
which is configurable via environment variable `RUST_LOG`.
Expand All @@ -107,7 +90,7 @@ $ export RUST_LOG=secure_message=info
$ cargo run --example keygen
```

Then you can start up the server as well as some clients
Then you can start the server and some clients
(in separate terminal sessions):

```
Expand All @@ -123,9 +106,9 @@ $ cargo run --example secure_message_client_encrypt
1: hello
```

The first message from the client will introduce it to the server
after which the server will relay other clients’ messages to the newly joined peer.
(Sorry, you have to manually type in nicknames at the moment.)
The first message from the client will introduce it to the server, then the server will relay other clients’ messages to the newly-joined peer.

> Note: At the moment, you have to manually type in the nicknames.

The clients use the generated keys to secure communications.
You can observe the exchange with `tcpdump`:
Expand All @@ -150,19 +133,15 @@ Some notable things about this example:

* The relay server has _zero knowledge_ of the encrypted message content.
* The sign/verify client does not encrypt the messages
(as you may see with `tcpdump`).
But it still verifies their integrity.
(as you may see with `tcpdump`). But it still verifies their integrity.

Currently all clients are expected to use the same keys.


## secure_session_echo

The server expects connections from clients
and echoes back any messages sent by individual clients.
The server expects connections from clients and echoes back any messages sent by individual clients.
Communication between parties is secured using Secure Session.

Usually you don’t need to specify any custom options,
the command-line defaults are expected to work right away.
But you can override the port assignment
if the default port is already in use on your system.
Usually you don’t need to specify custom options as the command-line defaults are expected to work right away.
But you can override the port assignment if the default port is already in use in your system.
32 changes: 32 additions & 0 deletions src/wrappers/themis/python/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# PyThemis

_Python_ wrapper for [Themis] crypto library.

Themis is an open-source high-level cryptographic services library that provides secure data exchange, authentication, and storage protection.
Themis provides ready-made building components, which simplifies the usage of core cryptographic security operations.

[Themis]: https://github.com/cossacklabs/themis

## Quickstart

PyThemis requires a native Themis library.
Please refer to the [Quickstart guide] for the installation instructions.

In-depth documentation can be found on our [Documentation Server].
Make sure to check out the [Examples].
<!--

TODO: refer to simulators, code samples, and tests here

-->

[Quickstart guide]: https://docs.cossacklabs.com/pages/python-howto/
[Documentation Server]: https://docs.cossacklabs.com/products/themis/
[Examples]: /docs/examples/python


## Licensing

The code is distributed under [Apache 2.0 license].

[Apache 2.0 license]: /src/wrappers/themis/python/LICENSE
7 changes: 0 additions & 7 deletions src/wrappers/themis/python/README.rst

This file was deleted.

4 changes: 2 additions & 2 deletions src/wrappers/themis/python/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
version='0.12.0',

description='',
long_description=open("README.rst").read(),
long_description_content_type='text/x-rst',
long_description=open("README.md").read(),
long_description_content_type='text/markdown',
license='Apache 2.0',
url='https://cossacklabs.com',

Expand Down
10 changes: 6 additions & 4 deletions src/wrappers/themis/rust/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
[![CircleCI][circle-ci-badge]][circle-ci]
[![License][license-badge]][license]

Rust wrapper for [Themis] crypto library.
_Rust_ wrapper for [Themis] crypto library.

Themis is an open-source high-level cryptographic services library that provides secure data exchange, authentication, and storage protection.
Themis provides ready-made building components, which simplifies the usage of core cryptographic security operations.

[Themis]: https://github.com/cossacklabs/themis
[crates-io]: https://crates.io/crates/themis
Expand All @@ -19,9 +22,8 @@ Rust wrapper for [Themis] crypto library.
Rust-Themis requires a native Themis library.
Please refer to the [Quickstart guide] for the installation instructions.

Documentation may be found here:

- [General documentation in Themis Wiki][Wiki],
See also:

- [In-depth documentation on our Documentation Server][Documentation Server],
- [Rust API documentation on Docs.rs][Docs.rs],
- [Changelog on GitHub][CHANGELOG].
Expand Down
17 changes: 8 additions & 9 deletions src/wrappers/themis/wasm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,8 @@

_WebAssembly_ wrapper for [**Themis** crypto library][themis].

Themis is an open-source high-level cryptographic services library
that provides secure data exchange, authentication, and storage protection.
Themis provides ready-made building components,
which simplify usage of core cryptographic security operations.
Themis is an open-source high-level cryptographic services library that provides secure data exchange, authentication, and storage protection.
Themis provides ready-made building components, which simplifies the usage of core cryptographic security operations.

[themis]: https://github.com/cossacklabs/themis
[npm]: https://www.npmjs.com/package/wasm-themis
Expand All @@ -23,19 +21,19 @@ which simplify usage of core cryptographic security operations.

### Installation

First, install the latest version of WasmThemis:
Start by installing the latest version of WasmThemis:

```
npm install wasm-themis
```

Then import it into your project:
Import it into your project:

```javascript
const themis = require('wasm-themis')
```

Finally, wait for WebAssembly code to be loaded:
Wait for WebAssembly code to load:

```javascript
themis.initialized.then(function() {
Expand All @@ -44,13 +42,14 @@ themis.initialized.then(function() {
//
})
```
Success!

### Documentation

Read the following resources to learn more:

- [How to use WasmThemis with JavaScript][language-guide]
- [General documentation for Themis library][docserver]
- [How to use WasmThemis with JavaScript][language-guide].
- [General documentation for Themis library on Cossack Labs Documentation Server][docserver].

<!--

Expand Down