00bc2cb9302031d18192ef8403fdfb5fb3fce607.svn-base 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package io.agora.sample;
  2. import io.agora.media.DynamicKey5;
  3. import org.apache.commons.codec.binary.Hex;
  4. import java.util.Map;
  5. import java.util.TreeMap;
  6. /**
  7. * Created by liwei on 8/2/17.
  8. */
  9. public class Verifier5 {
  10. public static void main(String[] args) throws Exception {
  11. if (args.length < 5) {
  12. System.out.println("java io.agora.media.sample.Verifier5 appID appCertificate channelName uid channelKey");
  13. return;
  14. }
  15. String appID = args[0];
  16. String appCertificate = args[1];
  17. String channelName = args[2];
  18. int uid = Integer.parseInt(args[3]);
  19. String channelKey = args[4];
  20. DynamicKey5 key5 = new DynamicKey5();
  21. if (! key5.fromString(channelKey)) {
  22. System.out.println("Faile to parse key");
  23. return ;
  24. }
  25. System.out.println("signature " + key5.content.signature);
  26. System.out.println("appID " + new String(Hex.encodeHex(key5.content.appID, false)));
  27. System.out.println("unixTs " + key5.content.unixTs);
  28. System.out.println("randomInt " + key5.content.salt);
  29. System.out.println("expiredTs " + key5.content.expiredTs);
  30. System.out.println("extra [" + toString(key5.content.extra) + "]");
  31. System.out.println("service " + key5.content.serviceType);
  32. System.out.println();
  33. System.out.println("Original \t\t " + channelKey);
  34. if (key5.content.serviceType == DynamicKey5.MEDIA_CHANNEL_SERVICE) {
  35. System.out.println("Uid = 0 \t\t " + DynamicKey5.generateMediaChannelKey(appID, appCertificate, channelName, key5.content.unixTs, key5.content.salt, 0, key5.content.expiredTs));
  36. System.out.println("Uid = " + uid + " \t " + DynamicKey5.generateMediaChannelKey(appID, appCertificate, channelName, key5.content.unixTs, key5.content.salt, uid, key5.content.expiredTs));
  37. } else if (key5.content.serviceType == DynamicKey5.RECORDING_SERVICE) {
  38. System.out.println("Uid = 0 \t\t " + DynamicKey5.generateRecordingKey(appID, appCertificate, channelName, key5.content.unixTs, key5.content.salt, 0, key5.content.expiredTs));
  39. System.out.println("Uid = " + uid + " \t " + DynamicKey5.generateRecordingKey(appID, appCertificate, channelName, key5.content.unixTs, key5.content.salt, uid, key5.content.expiredTs));
  40. } else if (key5.content.serviceType == DynamicKey5.IN_CHANNEL_PERMISSION) {
  41. String permission = key5.content.extra.get(DynamicKey5.ALLOW_UPLOAD_IN_CHANNEL);
  42. if (permission != DynamicKey5.noUpload && permission != DynamicKey5.audioVideoUpload) {
  43. System.out.println("Unknown in channel upload permission " + permission + " in extra [" + toString(key5.content.extra) + "]");
  44. return ;
  45. }
  46. System.out.println("Uid = 0 \t\t " + DynamicKey5.generateInChannelPermissionKey(appID, appCertificate, channelName, key5.content.unixTs, key5.content.salt, 0, key5.content.expiredTs, permission));
  47. System.out.println("Uid = " + uid + " \t " + DynamicKey5.generateInChannelPermissionKey(appID, appCertificate, channelName, key5.content.unixTs, key5.content.salt, uid, key5.content.expiredTs, permission));
  48. } else {
  49. System.out.println("Unknown service type " + key5.content.serviceType);
  50. }
  51. String signature = DynamicKey5.generateSignature(appCertificate,
  52. key5.content.serviceType,
  53. appID,
  54. key5.content.unixTs,
  55. key5.content.salt,
  56. channelName,
  57. uid,
  58. 0,
  59. key5.content.extra
  60. );
  61. System.out.println("generated signature " + signature);
  62. }
  63. private static String toString(TreeMap<Short, String> extra) {
  64. String s = "";
  65. String separator = "";
  66. for (Map.Entry<Short,String> v : extra.entrySet()) {
  67. s += separator;
  68. s += v.getKey();
  69. s += ":";
  70. s += v.getValue();
  71. separator = ", ";
  72. }
  73. return s;
  74. }
  75. }