shgraph.hapi.0.54.1.source-code.crypto_add_live_hash.proto Maven / Gradle / Ivy
syntax = "proto3";
package proto;
/*-
*
* Hedera Network Services Protobuf
*
* Copyright (C) 2018 - 2021 Hedera Hashgraph, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
option java_package = "com.hederahashgraph.api.proto.java";
// <<>> This comment is special code for setting PBJ Compiler java package
option java_multiple_files = true;
import "basic_types.proto";
import "duration.proto";
/**
* A hash---presumably of some kind of credential or certificate---along with a list of keys, each
* of which may be either a primitive or a threshold key.
*/
message LiveHash {
/**
* The account to which the livehash is attached
*/
AccountID accountId = 1;
/**
* The SHA-384 hash of a credential or certificate
*/
bytes hash = 2;
/**
* A list of keys (primitive or threshold), all of which must sign to attach the livehash to an account, and any one of which can later delete it.
*/
KeyList keys = 3;
/**
* The duration for which the livehash will remain valid
*/
Duration duration = 5;
}
/**
* At consensus, attaches the given livehash to the given account. The hash can be deleted by the
* key controlling the account, or by any of the keys associated to the livehash. Hence livehashes
* provide a revocation service for their implied credentials; for example, when an authority grants
* a credential to the account, the account owner will cosign with the authority (or authorities) to
* attach a hash of the credential to the account---hence proving the grant. If the credential is
* revoked, then any of the authorities may delete it (or the account owner). In this way, the
* livehash mechanism acts as a revocation service. An account cannot have two identical livehashes
* associated. To modify the list of keys in a livehash, the livehash should first be deleted, then
* recreated with a new list of keys.
*/
message CryptoAddLiveHashTransactionBody {
/**
* A hash of some credential or certificate, along with the keys of the entities that asserted it validity
*/
LiveHash liveHash = 3;
}