예제 #1
0
        private SurespotIdentity decryptIdentity(byte[] idBytes, String username, String password)
        {
            password = password + "_export_identity";

            byte[] decompressed = Decompress(idBytes);
            byte[] iv           = subBuf(decompressed, 0, 16);
            byte[] salt         = subBuf(decompressed, 16, 16);
            byte[] data         = subBuf(decompressed, 32, decompressed.Length - 32);

            byte[] derived = derive(password, salt);

            string decrypted = decrypt(data, derived, iv);

            textBox1.Text = decrypted;

            JObject          json = JObject.Parse(decrypted);
            SurespotIdentity si   = new SurespotIdentity((string)json["username"], (string)json["salt"]);

            string  keydata    = "" + json["keys"][0]; // There can be more than one key in a file
            JObject keys       = JObject.Parse(keydata);
            String  version    = (string)keys["version"];
            String  spubDH     = (string)keys["dhPub"];
            String  sprivDH    = (string)keys["dhPriv"];
            String  spubECDSA  = (string)keys["dsaPub"];
            String  sprivECDSA = (string)keys["dsaPriv"];

            // TODO: Recreate the keys

            spubDH = spubDH.Substring(27, spubDH.Length - 27 - 25);
            Console.Write(spubDH);
            Console.Write("test");
            byte[] pkcs8Blob = System.Convert.FromBase64String(spubDH);

            return(si);
        }
예제 #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            String password = textBox2.Text;

            byte[] file = File.ReadAllBytes("rty.ssi");

            SurespotIdentity si = decryptIdentity(file, "", textBox2.Text);

            byte[] saltBytes = Base64.Decode(si.getSalt());
            String dPassword = Encoding.UTF8.GetString(Base64.Encode(derive("qwe_export_identity", saltBytes))); // Ikke testet
        }
예제 #3
0
        private SurespotIdentity decryptIdentity(byte[] idBytes, String username, String password)
        {
            password = password + "_export_identity";

            byte[] decompressed = Decompress(idBytes);
            byte[] iv = subBuf(decompressed, 0, 16);
            byte[] salt = subBuf(decompressed, 16, 16);
            byte[] data = subBuf(decompressed, 32, decompressed.Length - 32);

            byte[] derived = derive(password, salt);

            string decrypted = decrypt(data, derived, iv);
            textBox1.Text = decrypted;

            JObject json = JObject.Parse(decrypted);
            SurespotIdentity si = new SurespotIdentity((string)json["username"], (string)json["salt"]);

            string keydata = "" + json["keys"][0]; // There can be more than one key in a file
            JObject keys = JObject.Parse(keydata);
            String version = (string)keys["version"];
            String spubDH = (string)keys["dhPub"];
            String sprivDH = (string)keys["dhPriv"];
            String spubECDSA = (string)keys["dsaPub"];
            String sprivECDSA = (string)keys["dsaPriv"];
            // TODO: Recreate the keys

            spubDH = spubDH.Substring(27, spubDH.Length - 27 - 25);
            Console.Write(spubDH);
            Console.Write("test");
            byte[] pkcs8Blob = System.Convert.FromBase64String(spubDH);

            return si;
        }