public LoginData(CipherResponse cipher, string userId) { if (cipher.Type != Enums.CipherType.Login) { throw new ArgumentException(nameof(cipher.Type)); } var data = cipher.Data.ToObject <LoginDataModel>(); Id = cipher.Id; FolderId = cipher.FolderId; UserId = userId; OrganizationId = cipher.OrganizationId; Name = data.Name; Uri = data.Uri; Username = data.Username; Password = data.Password; Notes = data.Notes; Totp = data.Totp; Favorite = cipher.Favorite; Edit = cipher.Edit; OrganizationUseTotp = cipher.OrganizationUseTotp; RevisionDateTime = cipher.RevisionDate; if (data.Fields != null && data.Fields.Any()) { try { Fields = JsonConvert.SerializeObject(data.Fields); } catch (JsonSerializationException) { } } }
public IdentityDataModel(CipherResponse response) : base(response) { if (response?.Identity == null) { throw new ArgumentNullException(nameof(response.Card)); } Title = response.Identity.Title; FirstName = response.Identity.FirstName; MiddleName = response.Identity.MiddleName; LastName = response.Identity.LastName; Address1 = response.Identity.Address1; Address2 = response.Identity.Address2; Address3 = response.Identity.Address3; City = response.Identity.City; State = response.Identity.State; PostalCode = response.Identity.PostalCode; Country = response.Identity.Country; Company = response.Identity.Company; Email = response.Identity.Email; Phone = response.Identity.Phone; SSN = response.Identity.SSN; Username = response.Identity.Username; PassportNumber = response.Identity.PassportNumber; LicenseNumber = response.Identity.LicenseNumber; }
public CipherDataModel(CipherResponse cipher) { Name = cipher.Name; Notes = cipher.Notes; Fields = cipher.Fields?.Select(f => new FieldDataModel(f)); PasswordHistory = cipher.PasswordHistory?.Select(h => new PasswordHistoryDataModel(h)); }
public CipherData(CipherResponse cipher, string userId) { Id = cipher.Id; FolderId = cipher.FolderId; UserId = userId; OrganizationId = cipher.OrganizationId; Favorite = cipher.Favorite; Edit = cipher.Edit; OrganizationUseTotp = cipher.OrganizationUseTotp; RevisionDateTime = cipher.RevisionDate; Type = cipher.Type; Data = JsonConvert.SerializeObject(cipher.Data); CipherDataModel cipherData = null; switch (cipher.Type) { case CipherType.Login: var loginData = cipher.Data.ToObject <LoginDataModel>(); cipherData = loginData; Uri = loginData.Uri; Username = loginData.Username; Password = loginData.Password; Totp = loginData.Totp; break; case CipherType.SecureNote: var noteData = cipher.Data.ToObject <SecureNoteDataModel>(); cipherData = noteData; SecureNoteType = noteData.Type; break; case CipherType.Card: var cardData = cipher.Data.ToObject <CardDataModel>(); cipherData = cardData; break; case CipherType.Identity: var idData = cipher.Data.ToObject <IdentityDataModel>(); cipherData = idData; break; default: throw new ArgumentException(nameof(cipher.Type)); } Name = cipherData.Name; Notes = cipherData.Notes; if (cipherData.Fields != null && cipherData.Fields.Any()) { try { Fields = JsonConvert.SerializeObject(cipherData.Fields); } catch (JsonSerializationException) { } } }
public CipherData(CipherResponse response, string userId = null, HashSet <string> collectionIds = null) { Id = response.Id; OrganizationId = response.OrganizationId; FolderId = response.FolderId; UserId = userId; Edit = response.Edit; ViewPassword = response.ViewPassword; OrganizationUseTotp = response.OrganizationUseTotp; Favorite = response.Favorite; RevisionDate = response.RevisionDate; Type = response.Type; Name = response.Name; Notes = response.Notes; CollectionIds = collectionIds?.ToList() ?? response.CollectionIds; Reprompt = response.Reprompt; try // Added to address Issue (https://github.com/bitwarden/mobile/issues/1006) { switch (Type) { case Enums.CipherType.Login: Login = new LoginData(response.Login); break; case Enums.CipherType.SecureNote: SecureNote = new SecureNoteData(response.SecureNote); break; case Enums.CipherType.Card: Card = new CardData(response.Card); break; case Enums.CipherType.Identity: Identity = new IdentityData(response.Identity); break; default: break; } } catch { System.Diagnostics.Trace.WriteLine(new StringBuilder() .Append("BitWarden CipherData constructor failed to initialize CyperType '") .Append(Type) .Append("'; id = {") .Append(Id) .AppendLine("}") .ToString(), "BitWarden CipherData constructor"); } Fields = response.Fields?.Select(f => new FieldData(f)).ToList(); Attachments = response.Attachments?.Select(a => new AttachmentData(a)).ToList(); PasswordHistory = response.PasswordHistory?.Select(ph => new PasswordHistoryData(ph)).ToList(); DeletedDate = response.DeletedDate; }
public SecureNoteDataModel(CipherResponse response) : base(response) { if (response?.SecureNote == null) { throw new ArgumentNullException(nameof(response.SecureNote)); } Type = response.SecureNote.Type; }
public CipherData(CipherResponse cipher, string userId) { Id = cipher.Id; FolderId = cipher.FolderId; UserId = userId; OrganizationId = cipher.OrganizationId; Favorite = cipher.Favorite; Edit = cipher.Edit; OrganizationUseTotp = cipher.OrganizationUseTotp; RevisionDateTime = cipher.RevisionDate; Type = cipher.Type; Data = null; switch (cipher.Type) { case CipherType.Login: var loginObj = JObject.FromObject(new LoginDataModel(cipher), new JsonSerializer { NullValueHandling = NullValueHandling.Ignore }); loginObj[nameof(LoginDataModel.Uri)]?.Parent?.Remove(); Login = loginObj.ToString(Formatting.None); break; case CipherType.SecureNote: var noteData = new SecureNoteDataModel(cipher); SecureNote = JsonConvert.SerializeObject(noteData); break; case CipherType.Card: var cardData = new CardDataModel(cipher); Card = JsonConvert.SerializeObject(cardData); break; case CipherType.Identity: var idData = new IdentityDataModel(cipher); Identity = JsonConvert.SerializeObject(idData); break; default: throw new ArgumentException(nameof(cipher.Type)); } Name = cipher.Name; Notes = cipher.Notes; if (cipher.Fields != null && cipher.Fields.Any()) { try { Fields = JsonConvert.SerializeObject(cipher.Fields.Select(f => new FieldDataModel(f))); } catch (JsonSerializationException) { } } }
public LoginDataModel(CipherResponse response) : base(response) { if (response?.Login == null) { throw new ArgumentNullException(nameof(response.Login)); } Uris = response.Login.Uris?.Where(u => u != null).Select(u => new LoginUriDataModel(u)); Username = response.Login.Username; Password = response.Login.Password; Totp = response.Login.Totp; }
public FolderData(CipherResponse cipher, string userId) { if (cipher.Type != Enums.CipherType.Folder) { throw new ArgumentException(nameof(cipher.Type)); } var data = cipher.Data.ToObject <SiteDataModel>(); Id = cipher.Id; UserId = userId; Name = data.Name; RevisionDateTime = cipher.RevisionDate; }
public CardDataModel(CipherResponse response) : base(response) { if (response?.Card == null) { throw new ArgumentNullException(nameof(response.Card)); } CardholderName = response.Card.CardholderName; Brand = response.Card.Brand; Number = response.Card.Number; ExpMonth = response.Card.ExpMonth; ExpYear = response.Card.ExpYear; Code = response.Card.Code; }
public CipherData(CipherResponse response, string userId = null, HashSet <string> collectionIds = null) { Id = response.Id; OrganizationId = response.OrganizationId; FolderId = response.FolderId; UserId = userId; Edit = response.Edit; ViewPassword = response.ViewPassword; OrganizationUseTotp = response.OrganizationUseTotp; Favorite = response.Favorite; RevisionDate = response.RevisionDate; Type = response.Type; Name = response.Name; Notes = response.Notes; CollectionIds = collectionIds?.ToList() ?? response.CollectionIds; switch (Type) { case Enums.CipherType.Login: Login = new LoginData(response.Login); break; case Enums.CipherType.SecureNote: SecureNote = new SecureNoteData(response.SecureNote); break; case Enums.CipherType.Card: Card = new CardData(response.Card); break; case Enums.CipherType.Identity: Identity = new IdentityData(response.Identity); break; default: break; } Fields = response.Fields?.Select(f => new FieldData(f)).ToList(); Attachments = response.Attachments?.Select(a => new AttachmentData(a)).ToList(); PasswordHistory = response.PasswordHistory?.Select(ph => new PasswordHistoryData(ph)).ToList(); DeletedDate = response.DeletedDate; }
public LoginData(CipherResponse cipher, string userId) { if (cipher.Type != Enums.CipherType.Login) { throw new ArgumentException(nameof(cipher.Type)); } var data = cipher.Data.ToObject <LoginDataModel>(); Id = cipher.Id; FolderId = cipher.FolderId; UserId = userId; Name = data.Name; Uri = data.Uri; Username = data.Username; Password = data.Password; Notes = data.Notes; Favorite = cipher.Favorite; RevisionDateTime = cipher.RevisionDate; }
public async Task SaveWithServerAsync_FallsBackToLegacyFormData(HttpStatusCode statusCode, SutProvider <CipherService> sutProvider, Cipher cipher, string fileName, EncByteArray data, CipherResponse response, EncString encKey) { sutProvider.GetDependency <ICryptoService>().EncryptAsync(fileName, Arg.Any <SymmetricCryptoKey>()) .Returns(new EncString(fileName)); sutProvider.GetDependency <ICryptoService>().EncryptToBytesAsync(data.Buffer, Arg.Any <SymmetricCryptoKey>()) .Returns(data); sutProvider.GetDependency <ICryptoService>().MakeEncKeyAsync(Arg.Any <SymmetricCryptoKey>()).Returns(new Tuple <SymmetricCryptoKey, EncString>(null, encKey)); sutProvider.GetDependency <IApiService>().PostCipherAttachmentAsync(cipher.Id, Arg.Any <AttachmentRequest>()) .Throws(new ApiException(new ErrorResponse { StatusCode = statusCode })); sutProvider.GetDependency <IApiService>().PostCipherAttachmentLegacyAsync(cipher.Id, Arg.Any <MultipartFormDataContent>()) .Returns(response); await sutProvider.Sut.SaveAttachmentRawWithServerAsync(cipher, fileName, data.Buffer); await sutProvider.GetDependency <IApiService>().Received(1) .PostCipherAttachmentLegacyAsync(cipher.Id, Arg.Any <MultipartFormDataContent>()); }
public CipherResponse EncryptWord(CipherRequest request) { var response = new CipherResponse(); response.UserInput = request.UserInput; response.ModifiedInput = response.UserInput.ToUpper(); var temp = new StringBuilder(); for (int i = 0; i < response.ModifiedInput.Length; i++) { char c = response.ModifiedInput[i]; if (response.Caesar.ContainsKey(c)) { temp.Append(response.Caesar[c]); } response.Output = temp.ToString(); } return(response); }
public CipherDataModel(CipherResponse cipher) { Name = cipher.Name; Notes = cipher.Notes; Fields = cipher.Fields?.Select(f => new FieldDataModel(f)); }