# Signal
https://signal.org/
https://github.com/signalapp
## [[Wikipedia]]
https://en.wikipedia.org/wiki/Signal_Foundation
### [[MobileCoin]] integration "attracts unwanted attention"
In April 2021, Signal announced the addition of a cryptocurrency wallet feature that would allow users to send and receive payments in MobileCoin.[187] This received criticism from security expert Bruce Schneier, who had previously praised the software. Schneier stated that this would bloat the client and attract unwanted attention from the authorities.[188]
### Funding
- [[Brian Acton]]
- [[Open Technology Fund]]
- [[Freedom of the Press Foundation]] as fiscal sponsor (before the [[Signal Foundation]])
- Now [[Signal Foundation]]
## See also
### - [[Signal Protocol]]
### - [[Signal Blog]]
## [[GitHub]] repos
https://github.com/orgs/signalapp/repositories
### libsignal-client
https://github.com/signalapp/libsignal-client
- Written in [[Rust]]
`libsignal-client` contains platform-agnostic APIs useful for Signal client apps, exposed as a Java, Swift, or TypeScript library. The underlying implementations are written in Rust:
- libsignal-protocol: Implements the Signal protocol, including the [Double Ratchet algorithm](https://signal.org/docs/). A replacement for [libsignal-protocol-java](https://github.com/signalapp/libsignal-protocol-java) and [libsignal-metadata-java](https://github.com/signalapp/libsignal-metadata-java).
- signal-crypto: Cryptographic primitives such as AES-GCM. We use [RustCrypto](https://github.com/RustCrypto)'s where we can but sometimes have differing needs.
- device-transfer: Support logic for Signal's device-to-device transfer feature.
- hsm-enclave: A wrapper around the [Noise protocol](http://noiseprotocol.org/) used to securely communicate with server-side [HSMs](https://en.wikipedia.org/wiki/Hardware_security_module).
- zkgroup: Functionality for [zero-knowledge groups](https://signal.org/blog/signal-private-group-system/) and related features available in Signal.
- poksho: Utilities for implementing zero-knowledge proofs (such as those used by zkgroup); stands for "proof-of-knowledge, stateful-hash-object".
This repository is used by the Signal client apps ([Android](https://github.com/signalapp/Signal-Android), [iOS](https://github.com/signalapp/Signal-iOS), and [Desktop](https://github.com/signalapp/Signal-Desktop)). Use outside of Signal is unsupported. In particular, the products of this repository are the Java, Swift, and TypeScript libraries that wrap the underlying Rust implementations. Those underlying implementations are subject to change without notice, as are the JNI, C, and Node add-on "bridge" layers.
### Signal-Server
https://github.com/signalapp/Signal-Server
No description, just points to the [docs]([https://signal.org/docs/](https://signal.org/docs/))
Written in Java
### RingRTC
https://github.com/signalapp/ringrtc
RingRTC is a middleware library providing [Signal Messenger](https://www.signal.org/) applications with video and voice calling services built on top of [WebRTC](https://webrtc.org/).
## License: [[GPLv3]]
*Our Signal Protocol libraries are open source, licensed GPLv3. We like the GPL for the quality control that it provides. If someone publicly says that they’re using our software, we want to see if they’ve made any modifications, and whether they’re using it correctly. This helps to increase transparency and accountability in deployments of our software, which we feel are important for end-to-end encryption.* - [Source](https://signal.org/blog/license-update/)