Package org.bouncycastle.mls
Class KeyScheduleEpoch
java.lang.Object
org.bouncycastle.mls.KeyScheduleEpoch
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static class
static class
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionKeyScheduleEpoch
(MlsCipherSuite suite) KeyScheduleEpoch
(MlsCipherSuite suite, Secret initSecret, Secret senderDataSecret, Secret exporterSecret, Secret confirmationKey, Secret membershipKey, Secret resumptionPSK, Secret epochAuthenticator, Secret encryptionSecret, Secret externalSecret, org.bouncycastle.crypto.AsymmetricCipherKeyPair externalKeyPair, GroupKeySet groupKeySet, Secret joinerSecret) KeyScheduleEpoch
(MlsCipherSuite suite, TreeSize treeSize, Secret epochSecret) KeyScheduleEpoch
(MlsCipherSuite suite, TreeSize treeSize, Secret joinerSecret, Secret pskSecret, byte[] context) -
Method Summary
Modifier and TypeMethodDescriptionbyte[]
confirmationTag
(byte[] confirmedTranscriptHash) copy()
boolean
static KeyScheduleEpoch
forCreator
(MlsCipherSuite suite) static KeyScheduleEpoch
forCreator
(MlsCipherSuite suite, byte[] groupContext) static KeyScheduleEpoch
forCreator
(MlsCipherSuite suite, SecureRandom rng) static KeyScheduleEpoch
forExternalJoiner
(MlsCipherSuite suite, TreeSize treeSize, KeyScheduleEpoch.ExternalInitParams externalInitParams, Secret commitSecret, List<KeyScheduleEpoch.PSKWithSecret> psks, byte[] context) getEncryptionKeys
(TreeSize size) org.bouncycastle.crypto.params.AsymmetricKeyParameter
static KeyScheduleEpoch
joiner
(MlsCipherSuite suite, byte[] joinerSecret, List<KeyScheduleEpoch.PSKWithSecret> psks, byte[] context) byte[]
MLSExporter
(String label, byte[] context, int length) next
(TreeSize treeSize, byte[] externalInit, Secret commitSecret, List<KeyScheduleEpoch.PSKWithSecret> psks, byte[] context) byte[]
receiveExternalInit
(byte[] kemOut) static KeyGeneration
senderDataKeys
(MlsCipherSuite suite, byte[] senderDataSecretBytes, byte[] ciphertext) void
setJoinerSecret
(Secret joinerSecret) startCommit
(Secret commitSecret, List<KeyScheduleEpoch.PSKWithSecret> psks, byte[] context) static Secret
welcomeSecret
(MlsCipherSuite suite, byte[] joinerSecret, List<KeyScheduleEpoch.PSKWithSecret> psk)
-
Field Details
-
initSecret
-
senderDataSecret
-
exporterSecret
-
confirmationKey
-
membershipKey
-
resumptionPSK
-
epochAuthenticator
-
encryptionSecret
-
externalSecret
-
groupKeySet
-
joinerSecret
-
-
Constructor Details
-
KeyScheduleEpoch
public KeyScheduleEpoch(MlsCipherSuite suite, Secret initSecret, Secret senderDataSecret, Secret exporterSecret, Secret confirmationKey, Secret membershipKey, Secret resumptionPSK, Secret epochAuthenticator, Secret encryptionSecret, Secret externalSecret, org.bouncycastle.crypto.AsymmetricCipherKeyPair externalKeyPair, GroupKeySet groupKeySet, Secret joinerSecret) -
KeyScheduleEpoch
- Throws:
IOException
IllegalAccessException
-
KeyScheduleEpoch
public KeyScheduleEpoch(MlsCipherSuite suite, TreeSize treeSize, Secret epochSecret) throws IOException, IllegalAccessException - Throws:
IOException
IllegalAccessException
-
KeyScheduleEpoch
public KeyScheduleEpoch(MlsCipherSuite suite, TreeSize treeSize, Secret joinerSecret, Secret pskSecret, byte[] context) throws IOException, IllegalAccessException - Throws:
IOException
IllegalAccessException
-
-
Method Details
-
receiveExternalInit
- Throws:
IOException
-
getJoinerSecret
-
setJoinerSecret
-
getEncryptionKeys
- Throws:
IOException
IllegalAccessException
-
senderDataKeys
public static KeyGeneration senderDataKeys(MlsCipherSuite suite, byte[] senderDataSecretBytes, byte[] ciphertext) throws IOException - Throws:
IOException
-
welcomeSecret
public static Secret welcomeSecret(MlsCipherSuite suite, byte[] joinerSecret, List<KeyScheduleEpoch.PSKWithSecret> psk) throws IOException - Throws:
IOException
-
forCreator
public static KeyScheduleEpoch forCreator(MlsCipherSuite suite, byte[] groupContext) throws IOException, IllegalAccessException - Throws:
IOException
IllegalAccessException
-
forCreator
public static KeyScheduleEpoch forCreator(MlsCipherSuite suite) throws IOException, IllegalAccessException - Throws:
IOException
IllegalAccessException
-
forCreator
public static KeyScheduleEpoch forCreator(MlsCipherSuite suite, SecureRandom rng) throws IOException, IllegalAccessException - Throws:
IOException
IllegalAccessException
-
forExternalJoiner
public static KeyScheduleEpoch forExternalJoiner(MlsCipherSuite suite, TreeSize treeSize, KeyScheduleEpoch.ExternalInitParams externalInitParams, Secret commitSecret, List<KeyScheduleEpoch.PSKWithSecret> psks, byte[] context) throws IOException, IllegalAccessException - Throws:
IOException
IllegalAccessException
-
startCommit
public KeyScheduleEpoch.JoinSecrets startCommit(Secret commitSecret, List<KeyScheduleEpoch.PSKWithSecret> psks, byte[] context) throws IOException - Throws:
IOException
-
confirmationTag
public byte[] confirmationTag(byte[] confirmedTranscriptHash) -
copy
-
joiner
public static KeyScheduleEpoch joiner(MlsCipherSuite suite, byte[] joinerSecret, List<KeyScheduleEpoch.PSKWithSecret> psks, byte[] context) throws IOException, IllegalAccessException - Throws:
IOException
IllegalAccessException
-
next
public KeyScheduleEpoch next(TreeSize treeSize, byte[] externalInit, Secret commitSecret, List<KeyScheduleEpoch.PSKWithSecret> psks, byte[] context) throws IOException, IllegalAccessException - Throws:
IOException
IllegalAccessException
-
MLSExporter
- Throws:
IOException
-
equals
-
getExternalPublicKey
public org.bouncycastle.crypto.params.AsymmetricKeyParameter getExternalPublicKey()
-