sign with private key