/** * Get an encrypted pseudonym asynchronously. * @param pp The polymorphic pseudonym to get an encrypted pseudonym for. * @param sp The SP ID to get an encrypted pseudonym for. * @return A task that will result in the Encrypted Pseudonym. */ public async Task<Pseudonym> GetEPAsync(Pseudonym pp, string sp) { HttpClient client = new HttpClient(); HttpResponseMessage message = await client.GetAsync(string.Format(url, WebUtility.UrlEncode(pp.Encode()), WebUtility.UrlEncode(sp))); string epString = await message.Content.ReadAsStringAsync(); return Pseudonym.Decode(epString); }
/** * Store a polymorphic pseudonym in the database. * @param user The User ID to store the polymorphic pseudonym for. * @param pp The polymorphic pseudonym to store. */ public void AddPolymorphic(string user, Pseudonym pp) { PolymorphicPseudonym pseudonym = new PolymorphicPseudonym(); pseudonym.user = user; pseudonym.pseudonym = pp.Encode(); pseudonym.id = System.Guid.NewGuid(); db.PolymorphicPseudonyms.InsertOnSubmit(pseudonym); db.SubmitChanges(); }
/** * Store a encrypted pseudonym in the database. * @param user The User ID to store the encrypted pseudonym for. * @param sp the SP ID to store the encrypted pseudonym for. * @param ep The encrypted pseudonym to store. */ public void AddEncrypted(string user, string sp, Pseudonym ep) { EncryptedPseudonym pseudonym = new EncryptedPseudonym(); pseudonym.user = user; pseudonym.sp = sp; pseudonym.pseudonym = ep.Encode(); pseudonym.id = System.Guid.NewGuid(); db.EncryptedPseudonyms.InsertOnSubmit(pseudonym); db.SubmitChanges(); }
/** * Decrypt an Encrypted Pseudonym. * * @param ep The Encrypted {@link Pseudonym} * @return The pseudonym from the Encrypted Pseudonym */ public byte[] DecryptPseudonym(Pseudonym ep) { ECPoint pseudonym = ep.B.Subtract(ep.A.Multiply(keyPair.PrivateKey)); pseudonym = pseudonym.Multiply(closingKey); return Util.Hash(pseudonym.GetEncoded()); }