Witness Angel Recorder is our multi-platform recording software of reference.

It is able to be used as a "Network Video Recorder" (NVR), by capturing the video stream of a network camera, for example for a Videotestimony For Condominiums. But it can also connect to the local camera and microphone of a Raspberry Pi mini-computer, to serve as a "Handbag" or "Dashcam" witness angel.

In accordance with our concept of a witness angel, the recording is done in "write-only" mode: the captured data are immediately encrypted in a powerful way, and only the agreement of a sufficient number of trusted third parties (called Key Guardians) will allow to decrypt some recordings if necessary (in case of burglary, assault etc.).

This software also integrates a small Revelation Station, which will allow to list the encrypted containers, and to request the agreement of the key guardians for such a data decryption operation.


You can obtain the Recorder software from the page of versions published on Github.

In the "Assets" tab, you'll find versions of the software for normal computers, under Windows, Mac or Linux.

On this page you'll also find a preinstalled disk image for Raspberry Pi minicomputers.

This disk image needs to be decompressed (e.g. with 7-Zip under Windows), then burned onto a MicroSD memory card of at least 16 GB. Many freeware programs are capable of doing this: Win32DiskImager, BalenaEtcher, RaspberryPiImager... Be sure to download these programs from official sites, without "junk software" inside. The burning operation will erase everything on the targeted memory card, so don't choose the wrong destination device.


Guided visit of the W.A Recorder software

1 - Recording controller

This is the homepage of the network video recorder, which allows you to start and stop recording.

This application is an interface (or frontend) which communicates with another application - launched in the background - the service (or backend); this service will manage the recording itself, and continue to run even when the NVR interface is closed.

In the main section we see the status of the important parameters of our system: camera address, summary of selected key guardians, recording and archiving options...

If one of these parameters is invalid ("KO"), then the recording cannot be started until the problem is solved.

At the bottom of the screen there is a preview thumbnail: a low quality image extracted from the last recorded video clip.

Finally, in the top bar, the icons allow you to respectively :

  • Restart the system status check
  • Reset the registration service (in case of a bug)
  • Change the interface language
  • Access the program settings

2 - Program settings

The settings available on this page vary depending on the system the software is running on, so Raspberry Pi mini-computers support many more sensors than normal computers. To configure a network recorder ("NVR"), for example, you will need to set the address of the network camera (or more precisely, of its RTSP video stream).

In any case, you will have to choose how many key guardians will have to give their authorization before a decryption is possible.

Be aware of the legal aspects: for example, the maximum retention period for recordings in the common areas of a building is typically restricted by law!

3 - Management of Key Guardians

In order to encrypt the records, we need the public keys of several "authenticators", which are the digital identities of the Key Guardians.

This page allows you to import these authenticators into the NVR and then select which ones to use for future recordings.

The authenticators can be imported automatically from the connected USB keys; in this case, you can choose to import at the same time the private keys (protected by a passphrase), which will be used only in case of decryption procedure.

One can also import a public authenticator from the WitnessAngel web gateway, by entering its unique identifier. In this more secure case, only the public keys will be imported, and the decryption procedure will need an exchange of authorizations by Internet.

Note that it is possible to complete, afterwards, an import of public keys with the private keys of the same Key Guardian.

4 - Management of encrypted containers

Once a video clip has been recorded and encrypted, it is stored in a secure container; all these containers are summarized here.

You can then later select one or more containers, to start a decryption procedure.

5 - Decryption procedure

The decryption operation is by far the most complex of all, as it requires gathering the targeted containers, all the Key Guardians referenced by these containers, and to determine the public keys of each Key Guardian that were actually used for encryption.The private keys corresponding to these public keys will be used for decryption.

If some of these private keys have been imported locally, their owner can give access to them by entering his/her secret phrase in the interface. Otherwise, you have to use the remote authorization system, which will allow each Key Guardian, via its "Authenticator" application, to give access to the desired keys.

The goal is to get a sufficient number of authorizations so that the decryption will succeed.

If a decryption has already been attempted (on any of the containers), its report can be accessed once again from here.

6 - Submission of authorization request

This page allows to send "authorization requests" to selected Key Guardians, so that they selectively allow access to some containers.

This process must of course be completed by external communication with Key Guardians, for them to understand and agree with the need for a decryption operation.

7 - Listing of authorizations requests

This page summarizes, for each container, the authorization requests submitted to each Key Guardian, and their status.

Once a request has been accepted or rejected, its status can't change anymore; but it's still possible to issue new requests for the same containers and Key Guardians.

8 - Decryption report

This page summarizes, for each container, potential errors or warnings emitted during this (complex) operation.

It can happen that some Key Guardians, or some keys, cannot be found; or that secret phrases have been lost. But this does not necessarily prevent decryption, because thanks to the "shared secret" system of the containers, it is enough that a sufficient number of private keys (the "threshold" that was present in the application settings during the recording) are accessible for the container to be revealed.

If the operation is successful, the decrypted video clips are exported to the mentioned folder. If errors or warnings have appeared, they are also exported, in text format, to this folder.