Skip to content
Snippets Groups Projects
Select Git revision
  • 1cc22eec6d6e474ec1aa9ee0c86013f48dbf5b57
  • dev default protected
  • release/1.9.1 protected
  • pini-1.8-docker
  • pini-sync-onlypeers
  • duniter-v2s-issue-123-industrialize-releases
  • feature/build-aarch64-nodejs16
  • release/1.8 protected
  • pini-docker
  • ci_tags
  • fix/1448/1.8/txs_not_stored
  • feature/node-20
  • fix/1441/node_summary_with_storage
  • fix/1442/improve_bma_tx_history
  • feature/wotwizard-1.8
  • release/1.9 protected
  • 1.7 protected
  • feature/docker-set-latest protected
  • feature/fast-docker-build-1.8.4
  • fast-docker-build protected
  • feature/dump-distance
  • v1.8.7 protected
  • v1.8.7-rc4 protected
  • v1.8.7-rc3 protected
  • v1.8.7-rc2 protected
  • v1.8.7-rc1 protected
  • v1.8.6 protected
  • v1.7.23 protected
  • v1.8.5 protected
  • v1.8.4 protected
  • v1.8.3 protected
  • v1.8.2 protected
  • v1.8.1 protected
  • v1.8.0 protected
  • v1.8.0-rc1 protected
  • v1.8.0-beta5 protected
  • v1.8.0-beta4 protected
  • v1.8.0-beta3 protected
  • v1.8.0-beta2 protected
  • v1.8.0-beta protected
  • v1.7.21 protected
41 results

install.sh

Blame
  • save_binary_signed_message.py 1.96 KiB
    # Copyright  2014-2021 Vincent Texier <vit@free.fr>
    #
    # DuniterPy is free software: you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation, either version 3 of the License, or
    # (at your option) any later version.
    #
    # DuniterPy is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
    import getpass
    
    import libnacl.sign
    
    from duniterpy.key import SigningKey
    
    # CONFIG #######################################
    
    SIGNED_MESSAGE_FILENAME = "/tmp/duniter_signed_message.bin"
    
    ################################################
    
    
    def save_binary_signed_message():
        # prompt hidden user entry
        salt = getpass.getpass("Enter your passphrase (salt): ")
    
        # prompt hidden user entry
        password = getpass.getpass("Enter your password: ")
    
        # Create key object
        key = SigningKey.from_credentials(salt, password)
    
        # Display your public key
        print("Public key for your credentials: %s" % key.pubkey)
    
        message = input("Enter your message: ")
    
        # Sign the message, the signed string is the message itself plus the
        # signature
        signed_message = key.sign(bytes(message, "utf-8"))  # type: bytes
    
        # To create a verifier pass in the verify key:
        veri = libnacl.sign.Verifier(key.hex_vk())
        # Verify the message!
        verified = veri.verify(signed_message)
        print(f"Message verified: {verified}")
    
        # save signed message in a file
        with open(SIGNED_MESSAGE_FILENAME, "wb") as file_handler:
            file_handler.write(signed_message)
    
        print("Signed message saved in file ./{0}".format(SIGNED_MESSAGE_FILENAME))
    
    
    if __name__ == "__main__":
        save_binary_signed_message()