-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
liuzhi
committed
Oct 13, 2024
1 parent
fd30b59
commit 90feef5
Showing
462 changed files
with
844,329 additions
and
245,993 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# Channel | ||
|
||
Wrapper for the Rust implementation of Channel in [crates/channel](../crates/channel). | ||
|
||
## Generate Go bindings | ||
|
||
```sh | ||
go generate | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
package channel | ||
|
||
import ( | ||
generated "source.quilibrium.com/quilibrium/monorepo/channel/generated/channel" | ||
) | ||
|
||
//go:generate ./generate.sh | ||
|
||
func NewDoubleRatchet( | ||
sessionKey []uint8, | ||
sendingHeaderKey []uint8, | ||
nextReceivingHeaderKey []uint8, | ||
isSender bool, | ||
sendingEphemeralPrivateKey []uint8, | ||
receivingEphemeralKey []uint8, | ||
) string { | ||
return generated.NewDoubleRatchet( | ||
sessionKey, | ||
sendingHeaderKey, | ||
nextReceivingHeaderKey, | ||
isSender, | ||
sendingEphemeralPrivateKey, | ||
receivingEphemeralKey, | ||
) | ||
} | ||
|
||
func NewTripleRatchet( | ||
peers [][]uint8, | ||
peerKey []uint8, | ||
identityKey []uint8, | ||
signedPreKey []uint8, | ||
threshold uint64, | ||
asyncDkgRatchet bool, | ||
) generated.TripleRatchetStateAndMetadata { | ||
return generated.NewTripleRatchet( | ||
peers, | ||
peerKey, | ||
identityKey, | ||
signedPreKey, | ||
threshold, | ||
asyncDkgRatchet, | ||
) | ||
} | ||
|
||
func DoubleRatchetEncrypt( | ||
ratchetStateAndMessage generated.DoubleRatchetStateAndMessage, | ||
) generated.DoubleRatchetStateAndEnvelope { | ||
return generated.DoubleRatchetEncrypt(ratchetStateAndMessage) | ||
} | ||
|
||
func DoubleRatchetDecrypt( | ||
ratchetStateAndEnvelope generated.DoubleRatchetStateAndEnvelope, | ||
) generated.DoubleRatchetStateAndMessage { | ||
return generated.DoubleRatchetDecrypt(ratchetStateAndEnvelope) | ||
} | ||
|
||
func TripleRatchetInitRound1( | ||
ratchetStateAndMetadata generated.TripleRatchetStateAndMetadata, | ||
) generated.TripleRatchetStateAndMetadata { | ||
return generated.TripleRatchetInitRound1(ratchetStateAndMetadata) | ||
} | ||
func TripleRatchetInitRound2( | ||
ratchetStateAndMetadata generated.TripleRatchetStateAndMetadata, | ||
) generated.TripleRatchetStateAndMetadata { | ||
return generated.TripleRatchetInitRound2(ratchetStateAndMetadata) | ||
} | ||
func TripleRatchetInitRound3( | ||
ratchetStateAndMetadata generated.TripleRatchetStateAndMetadata, | ||
) generated.TripleRatchetStateAndMetadata { | ||
return generated.TripleRatchetInitRound3(ratchetStateAndMetadata) | ||
} | ||
func TripleRatchetInitRound4( | ||
ratchetStateAndMetadata generated.TripleRatchetStateAndMetadata, | ||
) generated.TripleRatchetStateAndMetadata { | ||
return generated.TripleRatchetInitRound4(ratchetStateAndMetadata) | ||
} | ||
|
||
func TripleRatchetEncrypt( | ||
ratchetStateAndMessage generated.TripleRatchetStateAndMessage, | ||
) generated.TripleRatchetStateAndEnvelope { | ||
return generated.TripleRatchetEncrypt(ratchetStateAndMessage) | ||
} | ||
|
||
func TripleRatchetDecrypt( | ||
ratchetStateAndEnvelope generated.TripleRatchetStateAndEnvelope, | ||
) generated.TripleRatchetStateAndMessage { | ||
return generated.TripleRatchetDecrypt(ratchetStateAndEnvelope) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
#!/bin/bash | ||
set -euxo pipefail | ||
|
||
ROOT_DIR="${ROOT_DIR:-$( cd "$(dirname "$(realpath "$( dirname "${BASH_SOURCE[0]}" )")")" >/dev/null 2>&1 && pwd )}" | ||
|
||
RUST_CHANNEL_PACKAGE="$ROOT_DIR/crates/channel" | ||
BINDINGS_DIR="$ROOT_DIR/channel" | ||
|
||
# Build the Rust Channel package in release mode | ||
cargo build -p channel --release | ||
|
||
# Generate Go bindings | ||
pushd "$RUST_CHANNEL_PACKAGE" > /dev/null | ||
uniffi-bindgen-go src/lib.udl -o "$BINDINGS_DIR"/generated |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#include <channel.h> | ||
|
||
// This file exists beacause of | ||
// https://github.com/golang/go/issues/11263 | ||
|
||
void cgo_rust_task_callback_bridge_channel(RustTaskCallback cb, const void * taskData, int8_t status) { | ||
cb(taskData, status); | ||
} |
Oops, something went wrong.