Comments (5)
We decided to go for (from a specification perspective):
"""
ALLOW_V3
Allow version 3 of the OTR protocol to be used.
ALLOW_V4
Allow version 4 of the OTR protocol to be used.
REQUIRE_ENCRYPTION
Refuse to send unencrypted messages.
SEND_WHITESPACE_TAG
Advertise your support of OTR using the whitespace tag.
WHITESPACE_START_DAKE
Start the OTR DAKE when you receive a whitespace tag.
ERROR_START_DAKE
Start the OTR DAKE when you receive an OTR Error Message.
REQUIRE_INTERACTIVE
Refuse to start with a non-interactive DAKE.
IDENTITY_START_DAKE
Start OTR interactive DAKE with the sending of the Identity Message only.
TRY_DAKEZ_WHEN_OFFLINE
Try to start an offline conversation with DAKEZ.
REQUIRE_AUTHENTICATED
Always start an OTR conversation with authenticated parties only.
From the library to plugin perspective:
#define OTRL_POLICY_NEVER 0x00
#define OTRL_POLICY_OPPORTUNISTIC \
( OTRL_POLICY_ALLOW_V3 | \
OTRL_POLICY_ALLOW_V4 | \
OTRL_POLICY_SEND_WHITESPACE_TAG | \
OTRL_POLICY_WHITESPACE_START_AKE | \
OTRL_POLICY_ERROR_START_AKE )
#define OTRL_POLICY_MANUAL \
( OTRL_POLICY_ALLOW_V3 | \
OTRL_POLICY_ALLOW_V4)
#define OTRL_POLICY_ALWAYS \
( OTRL_POLICY_ALLOW_V3 | \
OTRL_POLICY_ALLOW_V4 | \
OTRL_POLICY_REQUIRE_ENCRYPTION | \
OTRL_POLICY_WHITESPACE_START_AKE | \
OTRL_POLICY_ERROR_START_AKE )
#define OTRL_POLICY_DEFAULT OTRL_POLICY_OPPORTUNISTIC
We can further include
We can have:
OTRL_POLICY_HIGHEST_SEC
OTRL_POLICY_ALLOW_V3 | \
OTRL_POLICY_ALLOW_V4 | \
OTRL_POLICY_SEND_WHITESPACE_TAG | \
OTRL_POLICY_WHITESPACE_START_AKE | \
OTRL_POLICY_ERROR_START_AKE
REQUIRE_AUTHENTICATED | \
REQUIRE_INTERACTIVE \
IDENTITY_START_DAKE \
)
OTRL_POLICY_OTRV4_FULL
OTRL_POLICY_ALLOW_V4 | \
OTRL_POLICY_SEND_WHITESPACE_TAG | \
OTRL_POLICY_WHITESPACE_START_AKE | \
OTRL_POLICY_ERROR_START_AKE
)
from libotr-ng.
Most of the policies should be implemented in libotr-ng - as discussed in the email thread.
from libotr-ng.
@olabini yes! already had an issue for that :)
from libotr-ng.
OK, this story has been broken up into several smaller stories:
#145, #146, #147, #148, #149, #150, #151, #152, #153, #154 and #155.
from libotr-ng.
Thanks! @olabini
from libotr-ng.
Related Issues (20)
- Fingerprints - v4 - ensure the other keylist buttons work HOT 1
- Fingerprints - v3 - support the connect button
- Fingerprints - v3 - support the disconnect button
- Fingerprints - v3 - support the forget fingerprint button
- Fingerprints - v3 - support the verify fingerprint button HOT 1
- The verify fingerprints dialog should support v3 fingerprints HOT 3
- How are timers going to work? (related to session expiration) HOT 9
- Correct fingerprint generation HOT 4
- Ensure that forging keys are used in the Ring Signature HOT 1
- Correct phi generation HOT 1
- Remove inner hash when calculating the authenticator for the data message HOT 1
- Change size of MKenc to 64 byte and use only the first 32 to the encryption function
- Fix the usage ID
- Change the enc algorithm to RFC7538 Chacha20 and set the nonce to zero
- Git master build broken on Arch Linux HOT 2
- Persistence APIs for private keys that use a buffer, not a FILE. HOT 7
- Small snprintf error in otrng_fingerprint_hash_to_human HOT 2
- otrng_serialize_ec_point return value interpreted incorrectly HOT 1
- potential memory leak in otrng_smp_initiate (currently not actually leaking) HOT 2
- Fix the CI HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libotr-ng.