예제 #1
0
        public bool IsTrustedIdentity(string name, IdentityKey identityKey)
        {
            IdentityKeysRepository identityKeysRepository = new IdentityKeysRepository();
            List <IdentityKeys>    identityKeys           = identityKeysRepository.GetIdentityKeys(name);

            if (identityKeys != null && identityKeys.Count > 0)
            {
                IdentityKeys identity = identityKeys.First();
                return(identity.PublicKey.SequenceEqual(identity.PublicKey));
            }

            return(true);
        }
예제 #2
0
        public void StoreLocalData(uint registrationId, IdentityKeyPair identityKey)
        {
            IdentityKeysRepository identityKeysRepository = new IdentityKeysRepository();
            IdentityKeys           newKeys = new IdentityKeys()
            {
                RecipientId    = "-1",
                RegistrationId = Convert.ToString(registrationId),
                PublicKey      = identityKey.GetPublicKey().Serialize(),
                PrivateKey     = identityKey.GetPrivateKey().Serialize()
            };

            identityKeysRepository.Save(newKeys);
        }
예제 #3
0
        public uint GetLocalRegistrationId()
        {
            IdentityKeysRepository identityKeysRepository = new IdentityKeysRepository();
            List <IdentityKeys>    identityKeys           = identityKeysRepository.GetIdentityKeys("-1");

            if (identityKeys != null && identityKeys.Count > 0)
            {
                IdentityKeys identityKey = identityKeys.First();
                return(Convert.ToUInt32(identityKey.RegistrationId));
            }

            return(0);
        }
예제 #4
0
        public IdentityKeyPair GetIdentityKeyPair()
        {
            IdentityKeysRepository identityKeysRepository = new IdentityKeysRepository();
            List <IdentityKeys>    identityKeys           = identityKeysRepository.GetIdentityKeys("-1");

            if (identityKeys != null && identityKeys.Count > 0)
            {
                IdentityKeys identityKey = identityKeys.First();
                return(new IdentityKeyPair(new IdentityKey(new DjbECPublicKey(identityKey.PublicKey)), new DjbECPrivateKey(identityKey.PrivateKey)));
            }

            return(null);
        }
예제 #5
0
        public void ClearRecipient(string recipientId)
        {
            IdentityKeysRepository identityKeysRepository = new IdentityKeysRepository();
            List <IdentityKeys>    identityKeys           = identityKeysRepository.GetIdentityKeys(recipientId);

            if (identityKeys != null && identityKeys.Count > 0)
            {
                identityKeysRepository.Delete(identityKeys.First());
            }

            SessionsRepository sessionsRepository = new SessionsRepository();
            List <Sessions>    sessions           = sessionsRepository.GetSessions(recipientId);

            if (sessions != null && sessions.Count > 0)
            {
                sessionsRepository.Delete(sessions.First());
            }
        }
예제 #6
0
        public bool SaveIdentity(string recipientId, IdentityKey identityKey)
        {
            IdentityKeysRepository identityKeysRepository = new IdentityKeysRepository();
            List <IdentityKeys>    identityKeys           = identityKeysRepository.GetIdentityKeys(recipientId);

            if (identityKeys != null && identityKeys.Count > 0)
            {
                IdentityKeys identity = identityKeys.First();
                identityKeysRepository.Delete(identity);
            }

            IdentityKeys newKeys = new IdentityKeys()
            {
                RecipientId = recipientId,
                PublicKey   = identityKey.GetPublicKey().Serialize()
            };

            return(identityKeysRepository.Save(newKeys));
        }
예제 #7
0
        public void Clear()
        {
            IdentityKeysRepository identityKeysRepository = new IdentityKeysRepository();

            identityKeysRepository.DeleteAll();

            PreKeysRepository preKeysRepository = new PreKeysRepository();

            preKeysRepository.DeleteAll();

            SenderKeysRepository senderKeysRepository = new SenderKeysRepository();

            senderKeysRepository.DeleteAll();

            SessionsRepository sessionsRepository = new SessionsRepository();

            sessionsRepository.DeleteAll();

            SignedPreKeysRepository signedPreKeysRepository = new SignedPreKeysRepository();

            signedPreKeysRepository.DeleteAll();
        }