-
Notifications
You must be signed in to change notification settings - Fork 240
Commit
Sign Verify Private Key
- Loading branch information
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
%YAML 1.1 | ||
%TAG !u! tag:unity3d.com,2011: | ||
--- !u!1 &7939348423131755349 | ||
GameObject: | ||
m_ObjectHideFlags: 0 | ||
m_CorrespondingSourceObject: {fileID: 0} | ||
m_PrefabInstance: {fileID: 0} | ||
m_PrefabAsset: {fileID: 0} | ||
serializedVersion: 6 | ||
m_Component: | ||
- component: {fileID: 1857326031979140900} | ||
- component: {fileID: 5699726257888795520} | ||
m_Layer: 0 | ||
m_Name: SignVerifyPK | ||
m_TagString: Untagged | ||
m_Icon: {fileID: 0} | ||
m_NavMeshLayer: 0 | ||
m_StaticEditorFlags: 0 | ||
m_IsActive: 1 | ||
--- !u!4 &1857326031979140900 | ||
Transform: | ||
m_ObjectHideFlags: 0 | ||
m_CorrespondingSourceObject: {fileID: 0} | ||
m_PrefabInstance: {fileID: 0} | ||
m_PrefabAsset: {fileID: 0} | ||
m_GameObject: {fileID: 7939348423131755349} | ||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | ||
m_LocalPosition: {x: 0, y: 0, z: 0} | ||
m_LocalScale: {x: 1, y: 1, z: 1} | ||
m_Children: [] | ||
m_Father: {fileID: 0} | ||
m_RootOrder: 0 | ||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||
--- !u!114 &5699726257888795520 | ||
MonoBehaviour: | ||
m_ObjectHideFlags: 0 | ||
m_CorrespondingSourceObject: {fileID: 0} | ||
m_PrefabInstance: {fileID: 0} | ||
m_PrefabAsset: {fileID: 0} | ||
m_GameObject: {fileID: 7939348423131755349} | ||
m_Enabled: 1 | ||
m_EditorHideFlags: 0 | ||
m_Script: {fileID: 11500000, guid: f9259fdff3465734daf9219e118083ce, type: 3} | ||
m_Name: | ||
m_EditorClassIdentifier: |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
%YAML 1.1 | ||
%TAG !u! tag:unity3d.com,2011: | ||
--- !u!1 &2774818338625932009 | ||
GameObject: | ||
m_ObjectHideFlags: 0 | ||
m_CorrespondingSourceObject: {fileID: 0} | ||
m_PrefabInstance: {fileID: 0} | ||
m_PrefabAsset: {fileID: 0} | ||
serializedVersion: 6 | ||
m_Component: | ||
- component: {fileID: 2774818338625932010} | ||
- component: {fileID: 3278632383507343372} | ||
m_Layer: 0 | ||
m_Name: SignVerifyWebWallet | ||
m_TagString: Untagged | ||
m_Icon: {fileID: 0} | ||
m_NavMeshLayer: 0 | ||
m_StaticEditorFlags: 0 | ||
m_IsActive: 1 | ||
--- !u!4 &2774818338625932010 | ||
Transform: | ||
m_ObjectHideFlags: 0 | ||
m_CorrespondingSourceObject: {fileID: 0} | ||
m_PrefabInstance: {fileID: 0} | ||
m_PrefabAsset: {fileID: 0} | ||
m_GameObject: {fileID: 2774818338625932009} | ||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | ||
m_LocalPosition: {x: 0, y: 0, z: 0} | ||
m_LocalScale: {x: 1, y: 1, z: 1} | ||
m_Children: [] | ||
m_Father: {fileID: 0} | ||
m_RootOrder: 0 | ||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||
--- !u!114 &3278632383507343372 | ||
MonoBehaviour: | ||
m_ObjectHideFlags: 0 | ||
m_CorrespondingSourceObject: {fileID: 0} | ||
m_PrefabInstance: {fileID: 0} | ||
m_PrefabAsset: {fileID: 0} | ||
m_GameObject: {fileID: 2774818338625932009} | ||
m_Enabled: 1 | ||
m_EditorHideFlags: 0 | ||
m_Script: {fileID: 11500000, guid: 22b7ebb5b91e09b4fa5c2911cefd95c5, type: 3} | ||
m_Name: | ||
m_EditorClassIdentifier: |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -169,5 +169,4 @@ public static int Network() | |
} | ||
|
||
} | ||
|
||
#endif |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
using System.Collections; | ||
using System.Collections.Generic; | ||
using Nethereum.Hex.HexConvertors.Extensions; | ||
using UnityEngine; | ||
|
||
public class SignVerifyPK : MonoBehaviour | ||
{ | ||
// Start is called before the first frame update | ||
async void Start() | ||
{ | ||
var privateKey = "ADD_PRIVATE_KEY"; | ||
string message = "hello"; | ||
var hashedMessage = Web3Wallet.Sha3(message); | ||
Debug.Log("Hashed Message PK: " + hashedMessage); | ||
string signature = Web3PrivateKey.Sign(privateKey, message); | ||
print("Signature PK: " + signature); | ||
// get account from private key | ||
string account = Web3PrivateKey.Address(privateKey); | ||
print("Account from PK: " + account); | ||
string address = await EVM.Verify(hashedMessage, signature); | ||
print("Address From Verify PK: " + address); | ||
|
||
ParseSignatureFunction(signature); | ||
} | ||
// Update is called once per frame | ||
public void ParseSignatureFunction(string sig) | ||
{ | ||
string signature = sig; | ||
string r = signature.Substring(0, 66).EnsureHexPrefix(); | ||
Debug.Log("PK R:" + r); | ||
string s = signature.Substring(66, 64).EnsureHexPrefix(); | ||
Debug.Log("PK S: " + s); | ||
int v = int.Parse(signature.Substring(130, 2), System.Globalization.NumberStyles.HexNumber); | ||
Debug.Log("PK V: " + v); | ||
} | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
using System.Text; | ||
using Nethereum.Signer; | ||
using Nethereum.Util; | ||
using UnityEngine; | ||
|
||
public class SignVerifyWebWallet : MonoBehaviour | ||
{ | ||
// Start is called before the first frame update | ||
async void Start() | ||
{ | ||
string message = "hello"; | ||
string signature = await Web3Wallet.Sign(message); | ||
//verification | ||
SignVerifySignature(signature, message); | ||
} | ||
|
||
public void SignVerifySignature(string signatureString, string originalMessage) | ||
{ | ||
string msg = "\x19" + "Ethereum Signed Message:\n" + originalMessage.Length + originalMessage; | ||
byte[] msgHash = new Sha3Keccack().CalculateHash(Encoding.UTF8.GetBytes(msg)); | ||
EthECDSASignature signature = MessageSigner.ExtractEcdsaSignature(signatureString); | ||
EthECKey key = EthECKey.RecoverFromSignature(signature, msgHash); | ||
|
||
bool isValid = key.Verify(msgHash, signature); | ||
Debug.Log("Address Returned: " + key.GetPublicAddress()); | ||
Debug.Log("Is Valid: " + isValid); | ||
} | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.