Ejemplo n.º 1
0
        public override async Task <byte[]> GetBinContent(Base.IContentContext context)
        {
            var prBook = await context.GetUserKeyPair();

            if (prBook == null)
            {
                Insight.Track("Device doesn't hold user key");
                return(null);
            }
            if (await context.GetMyUserId() == TargetId)
            {
                var contact = await context.GetUser(SourceId);

                if (contact == null)
                {
                    Insight.Track("SourceId is not a valid user - " + SourceId);
                    return(null);
                }
                return(await prBook.GetValidKey <ECDSAKeyPair>(KeyPurpose.DH_RECEIVE).SharedSecret(contact.PublicKeyBook.GetValidKey <ECDSAPublicKey>(KeyPurpose.DH_SEND)));
            }
            else
            {
                var contact2 = await context.GetUser(TargetId);

                if (contact2 == null)
                {
                    Insight.Track("TargetId is not a valid user - " + TargetId);
                    return(null);
                }
                return(await prBook.GetValidKey <ECDSAKeyPair>(KeyPurpose.DH_SEND).SharedSecret(contact2.PublicKeyBook.GetValidKey <ECDSAPublicKey>(KeyPurpose.DH_RECEIVE)));
            }
        }
Ejemplo n.º 2
0
        public override async Task <byte[]> GetBinContent(Base.IContentContext context)
        {
            var prBook = await context.GetDeviceKeyPair();

            if (TargetId == await context.GetMyDeviceId())
            {
                var device = await context.GetDevice(SourceId);

                if (device == null)
                {
                    Insight.Track("SourceId is not a valid device - " + SourceId);
                    return(null);
                }
                return(await prBook.GetValidKey <ECDSAKeyPair>(KeyPurpose.DH_RECEIVE).SharedSecret(device.PublicKeyBook.GetValidKey <ECDSAPublicKey>(KeyPurpose.DH_SEND)));
            }
            else
            {
                var device2 = await context.GetDevice(TargetId);

                if (device2 == null)
                {
                    Insight.Track("TargetId is not a valid device - " + TargetId);
                    return(null);
                }
                return(await prBook.GetValidKey <ECDSAKeyPair>(KeyPurpose.DH_SEND).SharedSecret(device2.PublicKeyBook.GetValidKey <ECDSAPublicKey>(KeyPurpose.DH_RECEIVE)));
            }
        }