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

Support for SSL/TLS in RethinkDB C# Driver #110

Merged
merged 16 commits into from
Apr 13, 2017
Merged

Support for SSL/TLS in RethinkDB C# Driver #110

merged 16 commits into from
Apr 13, 2017

Conversation

bchavez
Copy link
Owner

@bchavez bchavez commented Apr 13, 2017

This pull request establishes support for SSL/TLS endpoints to RethinkDB Server (and consequently permits connections to compose.io).

However, the new SSL/TLS features in the C# driver require a commercial subscription license for use. The subscription cost is $8.00 per month. Licenses can be purchased here: https://www.bitarmory.com/payments/rethinkdb

The SSL/TLS features are locked until a licenseTo and licenseKey are supplied:

var conn = R.Connection()
    .Hostname("ssl.server.com")
    .EnableSsl(
        new SslContext{ .... },
        licenseTo: "Some Company",
        licenseKey: "encrypted_key"
    )

licenseKeys are emailed after a subscription has been purchased at the link above. Additionally, revoked or terminated subscriptions can be blocked from future NuGet updates, so there's an incentive to keep the subscription on-going.

I decided to license the SSL/TLS code under a commercial license for a few reasons:

  1. It gives me an incentive to continue providing ongoing maintenance:
    • Tooling updates (VS 2015 -> 2017 RTM .NET Core tooling)
    • Triaging GitHub issues and Slack questions
    • Third-party library compatibility (ie: Newtonsoft)
  2. To give assurance to corporate users that someone will be around to maintain the C# driver for the foreseeable future.

Additionally, the RethinkDB binaries are now digitally signed with a strong name to cover scenarios in large corporate environments that have policies of running only signed assemblies.

R:\>sn -Tp RethinkDb.Driver.dll

Microsoft (R) .NET Framework Strong Name Utility  Version 4.0.30319.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Public key (hash algorithm: sha1):
002400000480000094000000060200000024000052534131000400000100010017e43087df41ac
39c7ffe05198e07a2012e3365581cf9bb4fce8e2b0364835c6259e362cc7cb2fe148583d21f746
ef8a899b6cc26af8ebde5d42b897f7d9e5c6a99de7247011f1b28a37ae145c4a5d62ea6b7a06ff
dc8922dbd7478769b34be50e5342c945db0bc08c39bce7f4c330ed3c1eabeea0501601879ed1b8
6c7a5db9

Public key token is 289e75d5145ae4e6

R:\>sn -vf RethinkDb.Driver.dll

Microsoft (R) .NET Framework Strong Name Utility  Version 4.0.30319.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Assembly 'RethinkDb.Driver.dll' is valid

Related: #50

⌚ 🌆 "I just can't wait... I just can't wait... for saturday night..."

@bchavez bchavez merged commit e9c9e3f into master Apr 13, 2017
@bchavez bchavez deleted the tls branch April 17, 2017 15:50
@bchavez bchavez mentioned this pull request Apr 17, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant