Tapir provides a framework for building Anonymous / metadata resistant Services
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- package applications
-
- import (
- "cwtch.im/tapir"
- "cwtch.im/tapir/primitives/core"
- "git.openprivacy.ca/openprivacy/log"
- )
-
- // TranscriptApp defines a Tapir Meta-App which provides a global cryptographic transcript
- type TranscriptApp struct {
- transcript *core.Transcript
- }
-
- // NewInstance creates a new TranscriptApp
- func (TranscriptApp) NewInstance() tapir.Application {
- ta := new(TranscriptApp)
- return ta
- }
-
- // Init initializes the cryptographic transcript
- func (ta *TranscriptApp) Init(connection tapir.Connection) {
- if ta.transcript != nil {
- ta.panic()
- }
- ta.transcript = core.NewTranscript("tapir-transcript")
- }
-
- // Transcript returns a pointer to the cryptographic transcript
- func (ta *TranscriptApp) Transcript() *core.Transcript {
- return ta.transcript
- }
-
- // PropagateTranscript overrides the default transcript and propagates a transcript from a previous session
- func (ta *TranscriptApp) PropagateTranscript(transcript *core.Transcript) {
- if ta.transcript != nil {
- ta.panic()
- }
- ta.transcript = transcript
- }
-
- func (ta *TranscriptApp) panic() {
- // Note: if this is ever happens it is a critical application bug
- // This will prevent a misuse of application chains that cause an earlier
- // transcript to be overwritten. Since we expect the security of many higher level applications
- // to be reliant on the randomness provided by the transcript we want to be actively hostile to any potential
- // misuse.
- log.Errorf("apps should not attempt to intitalize or overwrite a transcript once one has been initialized - this is a CRITICAL bug and so we have safely crashed")
- // We could silently fail to do anything here, but that is likely more dangerous in the long run...
- panic("apps should not attempt to intitalize or overwrite a transcript a transcript once one has been initialized - this is a CRITICAL bug and so we have safely crashed")
- }
|