/**
  * 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());
 }