Files
elmprodvpn/selective-vpn-api/app/transport_tokens_state.go

41 lines
1.1 KiB
Go

package app
import (
"crypto/sha256"
"encoding/hex"
"encoding/json"
transporttoken "selective-vpn-api/app/transporttoken"
)
func digestTransportIntents(intents []TransportPolicyIntent) string {
b, _ := json.Marshal(intents)
h := sha256.Sum256(b)
return hex.EncodeToString(h[:])
}
func digestTransportPolicyCompilePlan(plan TransportPolicyCompilePlan) string {
b, _ := json.Marshal(plan)
h := sha256.Sum256(b)
return hex.EncodeToString(h[:])
}
func issueTransportConfirmToken(baseRevision int64, digest string) string {
return transportConfirmStore.Issue("cnf-", baseRevision, digest)
}
func consumeTransportConfirmToken(token string, baseRevision int64, digest string) bool {
return transportConfirmStore.Consume(token, baseRevision, digest)
}
func issueTransportOwnerLocksClearToken(baseRevision int64, digest string) string {
return transportConfirmStore.Issue("clr-", baseRevision, digest)
}
func consumeTransportOwnerLocksClearToken(token string, baseRevision int64, digest string) bool {
return transportConfirmStore.Consume(token, baseRevision, digest)
}
func newTransportToken(n int) string {
return transporttoken.NewTokenHex(n)
}