Exemplo n.º 1
0
        private void HandlePendingMissingFileKeys(ApiMissingFileKeys missingFileKeys, UserPrivateKey thisUserPrivateKey)
        {
            if (missingFileKeys == null || missingFileKeys.Items.Count == 0)
            {
                return;
            }

            Dictionary <long, UserPublicKey> userPublicKeys         = UserMapper.ConvertApiUserIdPublicKeys(missingFileKeys.UserPublicKey);
            Dictionary <long, PlainFileKey>  plainFileKeys          = GeneratePlainFileKeyMap(missingFileKeys.FileKeys, thisUserPrivateKey);
            ApiSetUserFileKeysRequest        setUserFileKeysRequest = new ApiSetUserFileKeysRequest {
                Items = new List <ApiSetUserFileKey>(missingFileKeys.UserPublicKey.Count)
            };

            foreach (ApiUserIdFileId currentMissingFileKey in missingFileKeys.Items)
            {
                UserPublicKey currentUsersPublicKey = userPublicKeys[currentMissingFileKey.UserId];
                PlainFileKey  currentPlainFileKey   = plainFileKeys[currentMissingFileKey.FileId];

                EncryptedFileKey currentEncryptedFileKey = EncryptFileKey(currentPlainFileKey, currentUsersPublicKey, currentMissingFileKey.FileId);

                ApiSetUserFileKey newRequestEntry = new ApiSetUserFileKey {
                    FileId  = currentMissingFileKey.FileId,
                    UserId  = currentMissingFileKey.UserId,
                    FileKey = FileMapper.ToApiFileKey(currentEncryptedFileKey)
                };
                setUserFileKeysRequest.Items.Add(newRequestEntry);
            }

            IRestRequest restRequest = _client.Builder.PostMissingFileKeys(setUserFileKeysRequest);

            _client.Executor.DoSyncApiCall <VoidResponse>(restRequest, RequestType.PostMissingFileKeys);
        }
Exemplo n.º 2
0
        public void ConvertApiUserIdPublicKeys()
        {
            // ARRANGE
            Dictionary <long, UserPublicKey> expected = new Dictionary <long, UserPublicKey>(1)
            {
                {
                    1, FactoryUser.UserPublicKey
                }
            };

            List <ApiUserIdPublicKey> param = new List <ApiUserIdPublicKey>(1)
            {
                new ApiUserIdPublicKey {
                    UserId             = 1,
                    PublicKeyContainer = new ApiUserPublicKey {
                        PublicKey = expected[1].PublicKey,
                        Version   = expected[1].Version
                    }
                }
            };

            // ACT
            Dictionary <long, UserPublicKey> actual = UserMapper.ConvertApiUserIdPublicKeys(param);

            // ASSERT
            Assert.True(expected.Count == actual.Count);
            foreach (long currentKey in expected.Keys)
            {
                Assert.True(actual.ContainsKey(currentKey));
            }

            foreach (long currentKey in expected.Keys)
            {
                Assert.True(expected[currentKey].PublicKey == actual[currentKey].PublicKey);
                Assert.True(expected[currentKey].Version == actual[currentKey].Version);
            }
        }