blob: c1b3365e56196a45096d8f3745848db0b4ff658f (
plain)
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
|
package org.bouncycastle.crypto.tls;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.Hashtable;
import org.bouncycastle.util.Integers;
public class TlsSRPUtils
{
public static final Integer EXT_SRP = Integers.valueOf(ExtensionType.srp);
public static void addSRPExtension(Hashtable extensions, byte[] identity) throws IOException
{
extensions.put(EXT_SRP, createSRPExtension(identity));
}
public static byte[] getSRPExtension(Hashtable extensions) throws IOException
{
byte[] extensionData = TlsUtils.getExtensionData(extensions, EXT_SRP);
return extensionData == null ? null : readSRPExtension(extensionData);
}
public static byte[] createSRPExtension(byte[] identity) throws IOException
{
if (identity == null)
{
throw new TlsFatalAlert(AlertDescription.internal_error);
}
return TlsUtils.encodeOpaque8(identity);
}
public static byte[] readSRPExtension(byte[] extensionData) throws IOException
{
if (extensionData == null)
{
throw new IllegalArgumentException("'extensionData' cannot be null");
}
ByteArrayInputStream buf = new ByteArrayInputStream(extensionData);
byte[] identity = TlsUtils.readOpaque8(buf);
TlsProtocol.assertEmpty(buf);
return identity;
}
}
|