Package org.bouncycastle.mls
Class KeyScheduleEpoch
java.lang.Object
org.bouncycastle.mls.KeyScheduleEpoch
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classstatic 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()booleanstatic KeyScheduleEpochforCreator(MlsCipherSuite suite) static KeyScheduleEpochforCreator(MlsCipherSuite suite, byte[] groupContext) static KeyScheduleEpochforCreator(MlsCipherSuite suite, SecureRandom rng) static KeyScheduleEpochforExternalJoiner(MlsCipherSuite suite, TreeSize treeSize, KeyScheduleEpoch.ExternalInitParams externalInitParams, Secret commitSecret, List<KeyScheduleEpoch.PSKWithSecret> psks, byte[] context) getEncryptionKeys(TreeSize size) org.bouncycastle.crypto.params.AsymmetricKeyParameterstatic KeyScheduleEpochjoiner(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 KeyGenerationsenderDataKeys(MlsCipherSuite suite, byte[] senderDataSecretBytes, byte[] ciphertext) voidsetJoinerSecret(Secret joinerSecret) startCommit(Secret commitSecret, List<KeyScheduleEpoch.PSKWithSecret> psks, byte[] context) static SecretwelcomeSecret(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:
IOExceptionIllegalAccessException
-
KeyScheduleEpoch
public KeyScheduleEpoch(MlsCipherSuite suite, TreeSize treeSize, Secret epochSecret) throws IOException, IllegalAccessException - Throws:
IOExceptionIllegalAccessException
-
KeyScheduleEpoch
public KeyScheduleEpoch(MlsCipherSuite suite, TreeSize treeSize, Secret joinerSecret, Secret pskSecret, byte[] context) throws IOException, IllegalAccessException - Throws:
IOExceptionIllegalAccessException
-
-
Method Details
-
receiveExternalInit
- Throws:
IOException
-
getJoinerSecret
-
setJoinerSecret
-
getEncryptionKeys
- Throws:
IOExceptionIllegalAccessException
-
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:
IOExceptionIllegalAccessException
-
forCreator
public static KeyScheduleEpoch forCreator(MlsCipherSuite suite) throws IOException, IllegalAccessException - Throws:
IOExceptionIllegalAccessException
-
forCreator
public static KeyScheduleEpoch forCreator(MlsCipherSuite suite, SecureRandom rng) throws IOException, IllegalAccessException - Throws:
IOExceptionIllegalAccessException
-
forExternalJoiner
public static KeyScheduleEpoch forExternalJoiner(MlsCipherSuite suite, TreeSize treeSize, KeyScheduleEpoch.ExternalInitParams externalInitParams, Secret commitSecret, List<KeyScheduleEpoch.PSKWithSecret> psks, byte[] context) throws IOException, IllegalAccessException - Throws:
IOExceptionIllegalAccessException
-
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:
IOExceptionIllegalAccessException
-
next
public KeyScheduleEpoch next(TreeSize treeSize, byte[] externalInit, Secret commitSecret, List<KeyScheduleEpoch.PSKWithSecret> psks, byte[] context) throws IOException, IllegalAccessException - Throws:
IOExceptionIllegalAccessException
-
MLSExporter
- Throws:
IOException
-
equals
-
getExternalPublicKey
public org.bouncycastle.crypto.params.AsymmetricKeyParameter getExternalPublicKey()
-