All Downloads are FREE. Search and download functionalities are using the official Maven repository.

shgraph.hapi.0.54.1.source-code.crypto_add_live_hash.proto Maven / Gradle / Ivy

There is a newer version: 0.54.0
Show newest version
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;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy