This commit is contained in:
parent
f418353563
commit
6d2111d844
2 changed files with 39 additions and 22 deletions
|
|
@ -1,6 +1,9 @@
|
||||||
(* https://docs.taler.net/core/api-common.html#binary-formats
|
(* https://docs.taler.net/core/api-common.html#binary-formats
|
||||||
|
|
||||||
- numeric values are in network byte order (big endian) *)
|
- numeric values are in network byte order (big endian) *)
|
||||||
|
(* TODO: ?
|
||||||
|
some struct have a 'P' suffix, but are not defined in doc
|
||||||
|
we assume they are = to the un-suffixed ones *)
|
||||||
|
|
||||||
open Include
|
open Include
|
||||||
|
|
||||||
|
|
@ -138,7 +141,21 @@ module NormalizedPaytoHash = MK_32 ()
|
||||||
module AgeCommitmentHash = MK_64 ()
|
module AgeCommitmentHash = MK_64 ()
|
||||||
|
|
||||||
(* TODO Taler doc: missing *)
|
(* TODO Taler doc: missing *)
|
||||||
module RefreshCommitmentP = MK_64 ()
|
module PublicRefreshCoinNonceP = MK_64 ()
|
||||||
|
|
||||||
|
(* TODO Taler doc: missing *)
|
||||||
|
module PursePublicKey = MK_32 ()
|
||||||
|
|
||||||
|
(* TODO Taler doc: missing *)
|
||||||
|
module AuditorPublicKeyP = MK_32 ()
|
||||||
|
|
||||||
|
(* TODO
|
||||||
|
// Secret for blinding/unblinding.
|
||||||
|
// An RSA blinding secret, which is basically
|
||||||
|
// a 256-bit nonce, converted to Crockford `Base32`.
|
||||||
|
type DenominationBlindingKeyP = string;
|
||||||
|
*)
|
||||||
|
module DenominationBlindingKeyP = MK_64 ()
|
||||||
|
|
||||||
(* Hash over:
|
(* Hash over:
|
||||||
a) the hash of the denomination's public key,
|
a) the hash of the denomination's public key,
|
||||||
|
|
@ -156,8 +173,8 @@ module MerchantPublicKeyP = MK_32 ()
|
||||||
module MerchantPrivateKeyP = MK_32 ()
|
module MerchantPrivateKeyP = MK_32 ()
|
||||||
(*module MerchantSignatureP = MK_64 () *)
|
(*module MerchantSignatureP = MK_64 () *)
|
||||||
|
|
||||||
module TransfertPublicKeyP = MK_32 ()
|
module TransferPublicKeyP = MK_32 ()
|
||||||
module TransfertPrivateKeyP = MK_32 ()
|
module TransferPrivateKeyP = MK_32 ()
|
||||||
|
|
||||||
(*
|
(*
|
||||||
enum TALER_AmlDecisionState {
|
enum TALER_AmlDecisionState {
|
||||||
|
|
@ -173,7 +190,7 @@ module ExchangeSignatureP = MK_64 ()
|
||||||
module MasterPublicKeyP = MK_32 ()
|
module MasterPublicKeyP = MK_32 ()
|
||||||
module MasterPrivateKeyP = MK_32 ()
|
module MasterPrivateKeyP = MK_32 ()
|
||||||
module MasterSignatureP = MK_64 ()
|
module MasterSignatureP = MK_64 ()
|
||||||
module WireTransfertIdentifierRawP = MK_BASIC_32 ()
|
module WireTransferIdentifierRawP = MK_BASIC_32 ()
|
||||||
|
|
||||||
module UUID = struct
|
module UUID = struct
|
||||||
(* uint32t value[4]; *)
|
(* uint32t value[4]; *)
|
||||||
|
|
@ -225,7 +242,7 @@ struct TALER_EncryptedLinkSecretP {
|
||||||
uint8t enc[sizeof (struct TALER_LinkSecretP)];
|
uint8t enc[sizeof (struct TALER_LinkSecretP)];
|
||||||
};
|
};
|
||||||
*)
|
*)
|
||||||
module TransfertSecretP = MK_64 ()
|
module TransferSecretP = MK_64 ()
|
||||||
module LinkSecretP = MK_64 ()
|
module LinkSecretP = MK_64 ()
|
||||||
module EncryptedLinkSecretP = MK_64 ()
|
module EncryptedLinkSecretP = MK_64 ()
|
||||||
|
|
||||||
|
|
@ -526,6 +543,8 @@ module DepositConfirmationPS = struct
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
module RefreshCommitmentP = MK_64 ()
|
||||||
|
|
||||||
module RefreshMeltCoinAffirmationPS = struct
|
module RefreshMeltCoinAffirmationPS = struct
|
||||||
(* purpose.purpose = TALER_SIGNATURE_WALLET_COIN_MELT *)
|
(* purpose.purpose = TALER_SIGNATURE_WALLET_COIN_MELT *)
|
||||||
(* Hash over:
|
(* Hash over:
|
||||||
|
|
@ -630,7 +649,7 @@ module MasterDrainProfitPS = struct
|
||||||
date: Time.AbsoluteNBO.t;
|
date: Time.AbsoluteNBO.t;
|
||||||
amount: AmountNBO.t;
|
amount: AmountNBO.t;
|
||||||
h_section: HashCode.t;
|
h_section: HashCode.t;
|
||||||
h_payto: FullPaytoHashP.t;
|
h_payto: FullPaytoHash.t;
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -846,16 +865,12 @@ module ReserveCloseRequestSignaturePS = struct
|
||||||
type t = unit
|
type t = unit
|
||||||
end
|
end
|
||||||
|
|
||||||
module RefreshCommitmentP = struct
|
|
||||||
type t = { session_hash: HashCode.t }
|
|
||||||
end
|
|
||||||
|
|
||||||
module PurseRequestSignaturePS = struct
|
module PurseRequestSignaturePS = struct
|
||||||
(* purpose.purpose = TALER_SIGNATURE_WALLET_PURSE_CREATE *)
|
(* purpose.purpose = TALER_SIGNATURE_WALLET_PURSE_CREATE *)
|
||||||
type t = {
|
type t = {
|
||||||
purse_expiration: Time.AbsoluteNBO.t;
|
purse_expiration: Time.AbsoluteNBO.t;
|
||||||
merge_value_after_fees: AmountNBO.t;
|
merge_value_after_fees: AmountNBO.t;
|
||||||
h_contract_terms: PrivateContractHashP.t;
|
h_contract_terms: PrivateContractHash.t;
|
||||||
min_age: int;
|
min_age: int;
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
@ -866,7 +881,7 @@ module PurseDepositSignaturePS = struct
|
||||||
coin_contribution: AmountNBO.t;
|
coin_contribution: AmountNBO.t;
|
||||||
h_denom_pub: DenominationHash.t;
|
h_denom_pub: DenominationHash.t;
|
||||||
h_age_commitment: AgeCommitmentHash.t;
|
h_age_commitment: AgeCommitmentHash.t;
|
||||||
purse_pub: PursePublicKeyP.t;
|
purse_pub: PursePublicKey.t;
|
||||||
h_exchange_base_url: HashCode.t;
|
h_exchange_base_url: HashCode.t;
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
@ -884,9 +899,9 @@ module PurseDepositConfirmedSignaturePS = struct
|
||||||
type t = {
|
type t = {
|
||||||
total_purse_amount: AmountNBO.t;
|
total_purse_amount: AmountNBO.t;
|
||||||
total_deposit_fees: AmountNBO.t;
|
total_deposit_fees: AmountNBO.t;
|
||||||
purse_pub: PursePublicKeyP.t;
|
purse_pub: PursePublicKey.t;
|
||||||
purse_expiration: Time.AbsoluteNBO.t;
|
purse_expiration: Time.AbsoluteNBO.t;
|
||||||
h_contract_terms: PrivateContractHashP.t;
|
h_contract_terms: PrivateContractHash.t;
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -894,7 +909,7 @@ module PurseMergeSignaturePS = struct
|
||||||
(* purpose.purpose = TALER_SIGNATURE_WALLET_PURSE_MERGE *)
|
(* purpose.purpose = TALER_SIGNATURE_WALLET_PURSE_MERGE *)
|
||||||
type t = {
|
type t = {
|
||||||
merge_timestamp: Time.AbsoluteNBO.t;
|
merge_timestamp: Time.AbsoluteNBO.t;
|
||||||
h_wire: NormalizedPaytoHashP.t;
|
h_wire: NormalizedPaytoHash.t;
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -902,11 +917,11 @@ module AccountMergeSignaturePS = struct
|
||||||
(* purpose.purpose = TALER_SIGNATURE_WALLET_ACCOUNT_MERGE *)
|
(* purpose.purpose = TALER_SIGNATURE_WALLET_ACCOUNT_MERGE *)
|
||||||
type t = {
|
type t = {
|
||||||
reserve_pub: ReservePublicKeyP.t;
|
reserve_pub: ReservePublicKeyP.t;
|
||||||
purse_pub: PursePublicKeyP.t;
|
purse_pub: PursePublicKey.t;
|
||||||
merge_amount_after_fees: AmountNBO.t;
|
merge_amount_after_fees: AmountNBO.t;
|
||||||
merge_timestamp: Time.AbsoluteNBO.t;
|
merge_timestamp: Time.AbsoluteNBO.t;
|
||||||
purse_expiration: Time.AbsoluteNBO.t;
|
purse_expiration: Time.AbsoluteNBO.t;
|
||||||
h_contract_terms: PrivateContractHashP.t;
|
h_contract_terms: PrivateContractHash.t;
|
||||||
min_age: int;
|
min_age: int;
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
@ -920,11 +935,11 @@ module PurseMergeSuccessSignaturePS = struct
|
||||||
(* purpose.purpose = TALER_SIGNATURE_PURSE_MERGE_SUCCESS *)
|
(* purpose.purpose = TALER_SIGNATURE_PURSE_MERGE_SUCCESS *)
|
||||||
type t = {
|
type t = {
|
||||||
reserve_pub: ReservePublicKeyP.t;
|
reserve_pub: ReservePublicKeyP.t;
|
||||||
purse_pub: PursePublicKeyP.t;
|
purse_pub: PursePublicKey.t;
|
||||||
merge_amount_after_fees: AmountNBO.t;
|
merge_amount_after_fees: AmountNBO.t;
|
||||||
contract_time: Time.AbsoluteNBO.t;
|
contract_time: Time.AbsoluteNBO.t;
|
||||||
h_contract_terms: PrivateContractHashP.t;
|
h_contract_terms: PrivateContractHash.t;
|
||||||
h_wire: NormalizedPaytoHashP.t;
|
h_wire: NormalizedPaytoHash.t;
|
||||||
min_age: int;
|
min_age: int;
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
@ -1057,7 +1072,7 @@ module AmlDecisionPS = struct
|
||||||
h_justification: HashCode.t;
|
h_justification: HashCode.t;
|
||||||
decision_time: Time.TimestampNBO.t;
|
decision_time: Time.TimestampNBO.t;
|
||||||
new_threshold: AmountNBO.t;
|
new_threshold: AmountNBO.t;
|
||||||
h_payto: NormalizedPaytoHashP.t;
|
h_payto: NormalizedPaytoHash.t;
|
||||||
h_kyc_requirements: HashCode.t;
|
h_kyc_requirements: HashCode.t;
|
||||||
new_state: int;
|
new_state: int;
|
||||||
}
|
}
|
||||||
|
|
@ -1089,7 +1104,7 @@ module ReserveClosePS = struct
|
||||||
(* purpose.purpose = TALER_SIGNATURE_WALLET_RESERVE_CLOSE *)
|
(* purpose.purpose = TALER_SIGNATURE_WALLET_RESERVE_CLOSE *)
|
||||||
type t = {
|
type t = {
|
||||||
request_timestamp: Time.TimestampNBO.t;
|
request_timestamp: Time.TimestampNBO.t;
|
||||||
target_account_h_payto: FullPaytoHashP.t;
|
target_account_h_payto: FullPaytoHash.t;
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,8 @@ module Eddsa = struct
|
||||||
(* EdDSA and ECDHE public keys always point on Curve25519
|
(* EdDSA and ECDHE public keys always point on Curve25519
|
||||||
and represented using the standard 256 bits Ed25519 compact format,
|
and represented using the standard 256 bits Ed25519 compact format,
|
||||||
converted to Crockford Base32. *)
|
converted to Crockford Base32. *)
|
||||||
|
(* EdDSA signatures are transmitted as 64-bytes `base32`
|
||||||
|
binary-encoded objects with just the R and S values (base32_ binary-only). *)
|
||||||
type pub = Mirage_crypto_ec.Ed25519.pub
|
type pub = Mirage_crypto_ec.Ed25519.pub
|
||||||
|
|
||||||
let pub_of_string s =
|
let pub_of_string s =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue