public String GetKeycode(String packageId, PrivateKey privateKey) { String publicKeyId = privateKey.PublicKeyID; String privateKeyStr = privateKey.ArmoredKey; Endpoint p = ConnectionStrings.Endpoints["getKeycode"].Clone(); p.Path = p.Path.Replace("{publicKeyId}", publicKeyId); p.Path = p.Path.Replace("{packageId}", packageId); StandardResponse response = connection.Send <StandardResponse>(p); if (response.Response != APIResponse.SUCCESS) { throw new GettingKeycodeFailedException("Failed to get keycode: " + response.Message); } String encryptedKeycode = response.Message; CryptUtility cu = new CryptUtility(); String keycode = cu.DecryptKeycode(privateKeyStr, encryptedKeycode); return(keycode); }