forked from ringcentral/pubnub-jtools
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathPubnub.java
More file actions
89 lines (78 loc) · 3 KB
/
Copy pathPubnub.java
File metadata and controls
89 lines (78 loc) · 3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package com.pubnub.api;
import org.bouncycastle.util.SecureRandom;
import org.json.me.*;
public class Pubnub extends PubnubCore {
public Pubnub(String publish_key, String subscribe_key, String secret_key,
String cipher_key, boolean ssl_on) {
super(publish_key, subscribe_key, secret_key, cipher_key, ssl_on);
}
public Pubnub(String publish_key, String subscribe_key, String secret_key,
String cipher_key, boolean ssl_on, String initialization_vector) {
super(publish_key, subscribe_key, secret_key, cipher_key, ssl_on, initialization_vector);
}
public Pubnub(String publish_key, String subscribe_key, String secret_key,
boolean ssl_on) {
super(publish_key, subscribe_key, secret_key, "", ssl_on);
}
public Pubnub(String publish_key, String subscribe_key) {
super(publish_key, subscribe_key, "", "", false);
}
public Pubnub(String publish_key, String subscribe_key, boolean ssl) {
super(publish_key, subscribe_key, "", "", ssl);
}
public Pubnub(String publish_key, String subscribe_key, String secret_key) {
super(publish_key, subscribe_key, secret_key, "", false);
}
/**
* UUID
*
* 32 digit UUID generation at client side.
*
* @return String uuid.
*/
public String uuid() {
String valueBeforeMD5;
String valueAfterMD5;
SecureRandom mySecureRand = new SecureRandom();
String s_id = String.valueOf(PubnubCore.class.hashCode());
StringBuffer sbValueBeforeMD5 = new StringBuffer();
try {
long time = System.currentTimeMillis();
long rand = 0;
rand = mySecureRand.nextLong();
sbValueBeforeMD5.append(s_id);
sbValueBeforeMD5.append(":");
sbValueBeforeMD5.append(Long.toString(time));
sbValueBeforeMD5.append(":");
sbValueBeforeMD5.append(Long.toString(rand));
valueBeforeMD5 = sbValueBeforeMD5.toString();
byte[] array = PubnubCrypto.md5(valueBeforeMD5);
StringBuffer sb = new StringBuffer();
for (int j = 0; j < array.length; ++j) {
int b = array[j] & 0xFF;
if (b < 0x10) {
sb.append('0');
}
sb.append(Integer.toHexString(b));
}
valueAfterMD5 = sb.toString();
String raw = valueAfterMD5.toUpperCase();
sb = new StringBuffer();
sb.append(raw.substring(0, 8));
sb.append("-");
sb.append(raw.substring(8, 12));
sb.append("-");
sb.append(raw.substring(12, 16));
sb.append("-");
sb.append(raw.substring(16, 20));
sb.append("-");
sb.append(raw.substring(20));
return sb.toString();
} catch (Exception e) {
return null;
}
}
protected String getUserAgent() {
return "J2me/" + VERSION;
}
}