Initial commit
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
package com.alibaba.sdk.android.oss.common.auth;
|
||||
|
||||
import com.alibaba.sdk.android.oss.common.OSSLog;
|
||||
import com.alibaba.sdk.android.oss.common.utils.BinaryUtil;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import javax.crypto.Mac;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public class HmacSHA1Signature {
|
||||
private static final Object a = new Object();
|
||||
private static Mac b;
|
||||
|
||||
public String a() {
|
||||
return "HmacSHA1";
|
||||
}
|
||||
|
||||
public String a(String str, String str2) {
|
||||
OSSLog.b(a(), false);
|
||||
OSSLog.b(b(), false);
|
||||
try {
|
||||
OSSLog.a("sign start");
|
||||
byte[] a2 = a(str.getBytes("UTF-8"), str2.getBytes("UTF-8"));
|
||||
OSSLog.a("base64 start");
|
||||
return BinaryUtil.a(a2);
|
||||
} catch (UnsupportedEncodingException unused) {
|
||||
throw new RuntimeException("Unsupported algorithm: UTF-8");
|
||||
}
|
||||
}
|
||||
|
||||
public String b() {
|
||||
return "1";
|
||||
}
|
||||
|
||||
private byte[] a(byte[] bArr, byte[] bArr2) {
|
||||
Mac mac;
|
||||
try {
|
||||
if (b == null) {
|
||||
synchronized (a) {
|
||||
if (b == null) {
|
||||
b = Mac.getInstance(a());
|
||||
}
|
||||
}
|
||||
}
|
||||
try {
|
||||
mac = (Mac) b.clone();
|
||||
} catch (CloneNotSupportedException unused) {
|
||||
mac = Mac.getInstance(a());
|
||||
}
|
||||
mac.init(new SecretKeySpec(bArr, a()));
|
||||
return mac.doFinal(bArr2);
|
||||
} catch (InvalidKeyException unused2) {
|
||||
throw new RuntimeException("key must not be null");
|
||||
} catch (NoSuchAlgorithmException unused3) {
|
||||
throw new RuntimeException("Unsupported algorithm: HmacSHA1");
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,8 @@
|
||||
package com.alibaba.sdk.android.oss.common.auth;
|
||||
|
||||
import com.alibaba.sdk.android.oss.ClientException;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public interface OSSCredentialProvider {
|
||||
OSSFederationToken a() throws ClientException;
|
||||
}
|
@@ -0,0 +1,11 @@
|
||||
package com.alibaba.sdk.android.oss.common.auth;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public abstract class OSSCustomSignerCredentialProvider implements OSSCredentialProvider {
|
||||
@Override // com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider
|
||||
public OSSFederationToken a() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public abstract String a(String str);
|
||||
}
|
@@ -0,0 +1,23 @@
|
||||
package com.alibaba.sdk.android.oss.common.auth;
|
||||
|
||||
import com.alibaba.sdk.android.oss.ClientException;
|
||||
import com.alibaba.sdk.android.oss.common.OSSLog;
|
||||
import com.alibaba.sdk.android.oss.common.utils.DateUtil;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public abstract class OSSFederationCredentialProvider implements OSSCredentialProvider {
|
||||
private volatile OSSFederationToken a;
|
||||
|
||||
@Override // com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider
|
||||
public abstract OSSFederationToken a() throws ClientException;
|
||||
|
||||
public synchronized OSSFederationToken b() throws ClientException {
|
||||
if (this.a == null || DateUtil.b() / 1000 > this.a.a() - 300) {
|
||||
if (this.a != null) {
|
||||
OSSLog.a("token expired! current time: " + (DateUtil.b() / 1000) + " token expired: " + this.a.a());
|
||||
}
|
||||
this.a = a();
|
||||
}
|
||||
return this.a;
|
||||
}
|
||||
}
|
@@ -0,0 +1,52 @@
|
||||
package com.alibaba.sdk.android.oss.common.auth;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public class OSSFederationToken {
|
||||
private String a;
|
||||
private String b;
|
||||
private String c;
|
||||
private long d;
|
||||
|
||||
public OSSFederationToken(String str, String str2, String str3, long j) {
|
||||
b(str);
|
||||
c(str2);
|
||||
a(str3);
|
||||
a(j);
|
||||
}
|
||||
|
||||
public void a(String str) {
|
||||
this.c = str;
|
||||
}
|
||||
|
||||
public String b() {
|
||||
return this.c;
|
||||
}
|
||||
|
||||
public String c() {
|
||||
return this.a;
|
||||
}
|
||||
|
||||
public String d() {
|
||||
return this.b;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "OSSFederationToken [tempAk=" + this.a + ", tempSk=" + this.b + ", securityToken=" + this.c + ", expiration=" + this.d + "]";
|
||||
}
|
||||
|
||||
public long a() {
|
||||
return this.d;
|
||||
}
|
||||
|
||||
public void b(String str) {
|
||||
this.a = str;
|
||||
}
|
||||
|
||||
public void c(String str) {
|
||||
this.b = str;
|
||||
}
|
||||
|
||||
public void a(long j) {
|
||||
this.d = j;
|
||||
}
|
||||
}
|
@@ -0,0 +1,21 @@
|
||||
package com.alibaba.sdk.android.oss.common.auth;
|
||||
|
||||
@Deprecated
|
||||
/* loaded from: classes.dex */
|
||||
public class OSSPlainTextAKSKCredentialProvider implements OSSCredentialProvider {
|
||||
private String a;
|
||||
private String b;
|
||||
|
||||
@Override // com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider
|
||||
public OSSFederationToken a() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String b() {
|
||||
return this.a;
|
||||
}
|
||||
|
||||
public String c() {
|
||||
return this.b;
|
||||
}
|
||||
}
|
@@ -0,0 +1,31 @@
|
||||
package com.alibaba.sdk.android.oss.common.auth;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public class OSSStsTokenCredentialProvider implements OSSCredentialProvider {
|
||||
private String a;
|
||||
private String b;
|
||||
private String c;
|
||||
|
||||
public OSSStsTokenCredentialProvider(String str, String str2, String str3) {
|
||||
a(str.trim());
|
||||
b(str2.trim());
|
||||
c(str3.trim());
|
||||
}
|
||||
|
||||
public void a(String str) {
|
||||
this.a = str;
|
||||
}
|
||||
|
||||
public void b(String str) {
|
||||
this.b = str;
|
||||
}
|
||||
|
||||
public void c(String str) {
|
||||
this.c = str;
|
||||
}
|
||||
|
||||
@Override // com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider
|
||||
public OSSFederationToken a() {
|
||||
return new OSSFederationToken(this.a, this.b, this.c, Long.MAX_VALUE);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user