github.com/igggame/nebulas-go@v2.1.0+incompatible/crypto/keystore/signature.go (about) 1 // Copyright (C) 2017 go-nebulas authors 2 // 3 // This file is part of the go-nebulas library. 4 // 5 // the go-nebulas library is free software: you can redistribute it and/or modify 6 // it under the terms of the GNU General Public License as published by 7 // the Free Software Foundation, either version 3 of the License, or 8 // (at your option) any later version. 9 // 10 // the go-nebulas library is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU General Public License for more details. 14 // 15 // You should have received a copy of the GNU General Public License 16 // along with the go-nebulas library. If not, see <http://www.gnu.org/licenses/>. 17 // 18 19 package keystore 20 21 // Signature interface of different signature algorithm 22 type Signature interface { 23 24 // Algorithm returns the standard algorithm for this key. 25 Algorithm() Algorithm 26 27 // InitSign this object for signing. If this method is called 28 // again with a different argument, it negates the effect 29 // of this call. 30 InitSign(privateKey PrivateKey) error 31 32 // Sign returns the signature bytes of all the data input. 33 // The format of the signature depends on the underlying 34 // signature scheme. 35 Sign(data []byte) (out []byte, err error) 36 37 // RecoverPublic returns a public key, which is recoverd by data and signature 38 RecoverPublic(data []byte, signature []byte) (PublicKey, error) 39 40 // InitVerify initializes this object for verification. If this method is called 41 // again with a different argument, it negates the effect 42 // of this call. 43 InitVerify(publicKey PublicKey) error 44 45 // Verify the passed-in signature. 46 // 47 // <p>A call to this method resets this signature object to the state 48 // it was in when previously initialized for verification via a 49 // call to <code>initVerify(PublicKey)</code>. That is, the object is 50 // reset and available to verify another signature from the identity 51 // whose public key was specified in the call to <code>initVerify</code>. 52 Verify(data []byte, signature []byte) (bool, error) 53 }