Пример #1
0
        /// <summary>
        /// TODO
        /// </summary>
        /// <param name="deviceIdentifier"></param>
        /// <param name="deviceKey"></param>
        /// <param name="identityKeyPair"></param>
        /// <param name="profileKey"></param>
        /// <param name="code"></param>
        /// <param name="token"></param>
        /// <exception cref="InvalidKeyException"><</exception>
        /// <exception cref="IOException"></exception>
        public async Task AddDeviceAsync(string deviceIdentifier,
                                         ECPublicKey deviceKey,
                                         IdentityKeyPair identityKeyPair,
                                         byte[] profileKey,
                                         string code,
                                         CancellationToken?token = null)
        {
            if (token == null)
            {
                token = CancellationToken.None;
            }

            ProvisioningCipher cipher  = new ProvisioningCipher(deviceKey);
            ProvisionMessage   message = new ProvisionMessage
            {
                IdentityKeyPublic  = ByteString.CopyFrom(identityKeyPair.getPublicKey().serialize()),
                IdentityKeyPrivate = ByteString.CopyFrom(identityKeyPair.getPrivateKey().serialize()),
                Number             = credentials.E164,
                ProvisioningCode   = code
            };

            if (profileKey != null)
            {
                message.ProfileKey = ByteString.CopyFrom(profileKey);
            }

            byte[] ciphertext = cipher.Encrypt(message);
            await pushServiceSocket.SendProvisioningMessageAsync(deviceIdentifier, ciphertext, token);
        }
        public async void addDevice(string deviceIdentifier,
                                    ECPublicKey deviceKey,
                                    IdentityKeyPair identityKeyPair,
                                    string code)//throws InvalidKeyException, IOException
        {
            ProvisioningCipher cipher  = new ProvisioningCipher(deviceKey);
            ProvisionMessage   message = ProvisionMessage.CreateBuilder()
                                         .SetIdentityKeyPublic(ByteString.CopyFrom(identityKeyPair.getPublicKey().serialize()))
                                         .SetIdentityKeyPrivate(ByteString.CopyFrom(identityKeyPair.getPrivateKey().serialize()))
                                         .SetNumber(user)
                                         .SetProvisioningCode(code)
                                         .Build();

            byte[] ciphertext = cipher.encrypt(message);
            await this.pushServiceSocket.sendProvisioningMessage(deviceIdentifier, ciphertext);
        }
Пример #3
0
        public void addDevice(string deviceIdentifier,
                              ECPublicKey deviceKey,
                              IdentityKeyPair identityKeyPair,
                              string code)//throws InvalidKeyException, IOException
        {
            ProvisioningCipher cipher  = new ProvisioningCipher(deviceKey);
            ProvisionMessage   message = new ProvisionMessage
            {
                IdentityKeyPublic  = ByteString.CopyFrom(identityKeyPair.getPublicKey().serialize()),
                IdentityKeyPrivate = ByteString.CopyFrom(identityKeyPair.getPrivateKey().serialize()),
                Number             = user,
                ProvisioningCode   = code
            };

            byte[] ciphertext = cipher.encrypt(message);
            this.pushServiceSocket.sendProvisioningMessage(deviceIdentifier, ciphertext);
        }
Пример #4
0
        /// <summary>
        /// TODO
        /// </summary>
        /// <param name="token"></param>
        /// <param name="deviceIdentifier"></param>
        /// <param name="deviceKey"></param>
        /// <param name="identityKeyPair"></param>
        /// <param name="profileKey"></param>
        /// <param name="code"></param>
        public async Task AddDevice(CancellationToken token,
                                    string deviceIdentifier,
                                    ECPublicKey deviceKey,
                                    IdentityKeyPair identityKeyPair,
                                    byte[] profileKey,
                                    string code)//throws InvalidKeyException, IOException
        {
            ProvisioningCipher cipher  = new ProvisioningCipher(deviceKey);
            ProvisionMessage   message = new ProvisionMessage
            {
                IdentityKeyPublic  = ByteString.CopyFrom(identityKeyPair.getPublicKey().serialize()),
                IdentityKeyPrivate = ByteString.CopyFrom(identityKeyPair.getPrivateKey().serialize()),
                Number             = User,
                ProvisioningCode   = code
            };

            if (profileKey != null)
            {
                message.ProfileKey = ByteString.CopyFrom(profileKey);
            }

            byte[] ciphertext = cipher.encrypt(message);
            await PushServiceSocket.SendProvisioningMessage(token, deviceIdentifier, ciphertext);
        }