purify
C++ Purify implementation with native circuit and BPP support
Loading...
Searching...
No Matches
bppp.cpp File Reference

Experimental BPPP-backed PureSign proof(R) helpers. More...

#include "purify/puresign/bppp.hpp"
#include <algorithm>
#include <array>
#include <span>
#include <string_view>
#include "detail/common.hpp"
#include "purify/secp_bridge.h"

Go to the source code of this file.

Namespaces

namespace  purify
 
namespace  purify::puresign_plusplus
 
namespace  purify::puresign_plusplus::api_impl
 

Functions

Result< Signaturepurify::puresign_plusplus::api_impl::sign_message_with_prepared (const SecretKey &secret, std::span< const unsigned char > message, PreparedNonce &&prepared, purify_secp_context *secp_context)
 
Result< Signaturepurify::puresign_plusplus::api_impl::sign_with_prepared_topic (const SecretKey &secret, std::span< const unsigned char > message, PreparedNonce &&prepared, purify_secp_context *secp_context)
 
Result< PublicKeypurify::puresign_plusplus::api_impl::derive_public_key (const SecretKey &secret, purify_secp_context *secp_context)
 
Result< MessageProofCachepurify::puresign_plusplus::api_impl::build_message_proof_cache (std::span< const unsigned char > message)
 
Result< TopicProofCachepurify::puresign_plusplus::api_impl::build_topic_proof_cache (std::span< const unsigned char > topic)
 
Result< PreparedNoncepurify::puresign_plusplus::api_impl::prepare_message_nonce (const SecretKey &secret, std::span< const unsigned char > message, purify_secp_context *secp_context)
 
Result< PreparedNonceWithProofpurify::puresign_plusplus::api_impl::prepare_message_nonce_with_proof (const SecretKey &secret, std::span< const unsigned char > message, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 
Result< PreparedNonceWithProofpurify::puresign_plusplus::api_impl::prepare_message_nonce_with_proof (const SecretKey &secret, const MessageProofCache &cache, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 
Result< PreparedNoncepurify::puresign_plusplus::api_impl::prepare_topic_nonce (const SecretKey &secret, std::span< const unsigned char > topic, purify_secp_context *secp_context)
 
Result< PreparedNonceWithProofpurify::puresign_plusplus::api_impl::prepare_topic_nonce_with_proof (const SecretKey &secret, std::span< const unsigned char > topic, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 
Result< PreparedNonceWithProofpurify::puresign_plusplus::api_impl::prepare_topic_nonce_with_proof (const SecretKey &secret, const TopicProofCache &cache, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 
Result< Signaturepurify::puresign_plusplus::api_impl::sign_message (const SecretKey &secret, std::span< const unsigned char > message, purify_secp_context *secp_context)
 
Result< ProvenSignaturepurify::puresign_plusplus::api_impl::sign_message_with_prepared_proof (const SecretKey &secret, std::span< const unsigned char > message, PreparedNonceWithProof &&prepared, purify_secp_context *secp_context)
 
Result< Signaturepurify::puresign_plusplus::api_impl::sign_with_topic (const SecretKey &secret, std::span< const unsigned char > message, std::span< const unsigned char > topic, purify_secp_context *secp_context)
 
Result< ProvenSignaturepurify::puresign_plusplus::api_impl::sign_with_prepared_topic_proof (const SecretKey &secret, std::span< const unsigned char > message, PreparedNonceWithProof &&prepared, purify_secp_context *secp_context)
 
Result< ProvenSignaturepurify::puresign_plusplus::api_impl::sign_message_with_proof (const SecretKey &secret, std::span< const unsigned char > message, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 
Result< ProvenSignaturepurify::puresign_plusplus::api_impl::sign_message_with_proof (const SecretKey &secret, const MessageProofCache &cache, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 
Result< ProvenSignaturepurify::puresign_plusplus::api_impl::sign_with_topic_proof (const SecretKey &secret, std::span< const unsigned char > message, std::span< const unsigned char > topic, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 
Result< ProvenSignaturepurify::puresign_plusplus::api_impl::sign_with_topic_proof (const SecretKey &secret, std::span< const unsigned char > message, const TopicProofCache &cache, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 
Result< bool > purify::puresign_plusplus::api_impl::verify_signature (const PublicKey &public_key, std::span< const unsigned char > message, const Signature &signature, purify_secp_context *secp_context)
 
Result< bool > purify::puresign_plusplus::api_impl::verify_message_nonce_proof (const PublicKey &public_key, std::span< const unsigned char > message, const NonceProof &nonce_proof, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 
Result< bool > purify::puresign_plusplus::api_impl::verify_message_nonce_proof (const MessageProofCache &cache, const PublicKey &public_key, const NonceProof &nonce_proof, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 
Result< bool > purify::puresign_plusplus::api_impl::verify_topic_nonce_proof (const PublicKey &public_key, std::span< const unsigned char > topic, const NonceProof &nonce_proof, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 
Result< bool > purify::puresign_plusplus::api_impl::verify_topic_nonce_proof (const TopicProofCache &cache, const PublicKey &public_key, const NonceProof &nonce_proof, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 
Result< bool > purify::puresign_plusplus::api_impl::verify_message_signature_with_proof (const PublicKey &public_key, std::span< const unsigned char > message, const ProvenSignature &signature, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 
Result< bool > purify::puresign_plusplus::api_impl::verify_message_signature_with_proof (const MessageProofCache &cache, const PublicKey &public_key, const ProvenSignature &signature, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 
Result< bool > purify::puresign_plusplus::api_impl::verify_topic_signature_with_proof (const PublicKey &public_key, std::span< const unsigned char > message, std::span< const unsigned char > topic, const ProvenSignature &signature, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 
Result< bool > purify::puresign_plusplus::api_impl::verify_topic_signature_with_proof (const TopicProofCache &cache, const PublicKey &public_key, std::span< const unsigned char > message, const ProvenSignature &signature, purify_secp_context *secp_context, bppp::ExperimentalCircuitBackend *circuit_cache)
 

Variable Documentation

◆ binding_digest

◆ eval_input

◆ nonce

◆ scalar

◆ scope

Scope scope = Scope::Message

Definition at line 118 of file bppp.cpp.

Referenced by purify::puresign_plusplus::PreparedNonce::from_parts().

◆ signer_pubkey

XOnly32 signer_pubkey {}

Definition at line 121 of file bppp.cpp.

Referenced by purify::puresign_plusplus::PreparedNonce::from_parts().