Top Inners Fields Constructors Methods
org.bouncycastle.mls

public Class GroupKeySet

extends Object
Class Inheritance
Imports
java.io.IOException, java.nio.charset.StandardCharsets, java.security.InvalidParameterException, java.util.HashMap, .List, .Map, org.bouncycastle.mls.TreeKEM.LeafIndex, .NodeIndex, org.bouncycastle.mls.codec.ContentType, org.bouncycastle.mls.crypto.MlsCipherSuite, .Secret

Nested and Inner Type Summary

Modifier and TypeClass and Description
public class
public class

Field Summary

Modifier and TypeField and Description
pack-priv Map<LeafIndex, GroupKeySet.HashRatchet>
pack-priv final Secret
pack-priv Map<LeafIndex, GroupKeySet.HashRatchet>
pack-priv final int
public GroupKeySet.SecretTree
pack-priv final MlsCipherSuite

Constructor Summary

AccessConstructor and Description
public
GroupKeySet(MlsCipherSuite suite, TreeSize treeSize, Secret encryptionSecret)

Method Summary

Modifier and TypeMethod and Description
public GroupKeySet.HashRatchet
private void
ApplyReuseGuard(byte[] guard, byte[] nonce)

public boolean
equals(Object
the reference object with which to compare.
o
)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

public void
erase(ContentType contentType, LeafIndex sender, int generation)

public KeyGeneration
get(ContentType contentType, LeafIndex sender, int generation, byte[] reuseGuard)

public KeyGeneration
get(ContentType contentType, LeafIndex sender, byte[] reuseGuard)

public GroupKeySet.HashRatchet
public boolean
pack-priv void
Inherited from java.lang.Object:
clonefinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

applicationRatchetsback to summary
pack-priv Map<LeafIndex, GroupKeySet.HashRatchet> applicationRatchets
encryptionSecretCommitback to summary
pack-priv final Secret encryptionSecretCommit
handshakeRatchetsback to summary
pack-priv Map<LeafIndex, GroupKeySet.HashRatchet> handshakeRatchets
secretSizeback to summary
pack-priv final int secretSize
secretTreeback to summary
public GroupKeySet.SecretTree secretTree
suiteback to summary
pack-priv final MlsCipherSuite suite

Constructor Detail

GroupKeySetback to summary
public GroupKeySet(MlsCipherSuite suite, TreeSize treeSize, Secret encryptionSecret) throws IOException, IllegalAccessException

Method Detail

applicationRatchetback to summary
public GroupKeySet.HashRatchet applicationRatchet(LeafIndex sender) throws IOException, IllegalAccessException
ApplyReuseGuardback to summary
private void ApplyReuseGuard(byte[] guard, byte[] nonce)
equalsback to summary
public boolean equals(Object o)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
o:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

Annotations
@Override
eraseback to summary
public void erase(ContentType contentType, LeafIndex sender, int generation) throws IOException, IllegalAccessException
getback to summary
public KeyGeneration get(ContentType contentType, LeafIndex sender, int generation, byte[] reuseGuard) throws IOException, IllegalAccessException
getback to summary
public KeyGeneration get(ContentType contentType, LeafIndex sender, byte[] reuseGuard) throws IOException, IllegalAccessException
handshakeRatchetback to summary
public GroupKeySet.HashRatchet handshakeRatchet(LeafIndex sender) throws IOException, IllegalAccessException
hasLeafback to summary
public boolean hasLeaf(LeafIndex sender)
initRatchetsback to summary
pack-priv void initRatchets(LeafIndex sender) throws IOException, IllegalAccessException
org.bouncycastle.mls back to summary

public Class GroupKeySet.HashRatchet

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
pack-priv Map<Integer, KeyGeneration>
pack-priv final int
pack-priv int
pack-priv Secret
pack-priv final int

Constructor Summary

AccessConstructor and Description
pack-priv
HashRatchet(Secret baseSecret)

Method Summary

Modifier and TypeMethod and Description
public void
erase(int generation)

public KeyGeneration
get(int generation)

public KeyGeneration
next()

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

cacheback to summary
pack-priv Map<Integer, KeyGeneration> cache
keySizeback to summary
pack-priv final int keySize
nextGenerationback to summary
pack-priv int nextGeneration
nextSecretback to summary
pack-priv Secret nextSecret
nonceSizeback to summary
pack-priv final int nonceSize

Constructor Detail

HashRatchetback to summary
pack-priv HashRatchet(Secret baseSecret)

Method Detail

eraseback to summary
public void erase(int generation)
getback to summary
public KeyGeneration get(int generation) throws IOException, IllegalAccessException
nextback to summary
public KeyGeneration next() throws IOException, IllegalAccessException
org.bouncycastle.mls back to summary

public Class GroupKeySet.SecretTree

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
public Map<NodeIndex, Secret>
pack-priv final TreeSize

Constructor Summary

AccessConstructor and Description
public
SecretTree(TreeSize treeSizeIn, Secret encryptionSecret)

Method Summary

Modifier and TypeMethod and Description
public Secret
get(LeafIndex leaf)

protected boolean
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

secretsback to summary
public Map<NodeIndex, Secret> secrets
treeSizeback to summary
pack-priv final TreeSize treeSize

Constructor Detail

SecretTreeback to summary
public SecretTree(TreeSize treeSizeIn, Secret encryptionSecret)

Method Detail

getback to summary
public Secret get(LeafIndex leaf) throws IOException, IllegalAccessException
hasLeafback to summary
protected boolean hasLeaf(LeafIndex sender)