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))); } }
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))); } }