Class SignalOmemoKeyUtil


  • public class SignalOmemoKeyUtil
    extends org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
    Concrete implementation of the KeyUtil for an implementation using the Signal library.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil

        org.jivesoftware.smackx.omemo.util.OmemoKeyUtil.Bundle
    • Field Summary

      • Fields inherited from class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil

        BUNDLE
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.whispersystems.libsignal.state.PreKeyBundle bundleFromOmemoBundle​(org.jivesoftware.smackx.omemo.element.OmemoBundleElement bundle, org.jivesoftware.smackx.omemo.internal.OmemoDevice contact, int preKeyId)  
      org.whispersystems.libsignal.ecc.ECPublicKey ellipticCurvePublicKeyFromBytes​(byte[] data)  
      org.whispersystems.libsignal.IdentityKeyPair generateOmemoIdentityKeyPair()  
      java.util.TreeMap<java.lang.Integer,​org.whispersystems.libsignal.state.PreKeyRecord> generateOmemoPreKeys​(int currentPreKeyId, int count)  
      org.whispersystems.libsignal.state.SignedPreKeyRecord generateOmemoSignedPreKey​(org.whispersystems.libsignal.IdentityKeyPair identityKeyPair, int currentPreKeyId)  
      org.jivesoftware.smackx.omemo.trust.OmemoFingerprint getFingerprintOfIdentityKey​(org.whispersystems.libsignal.IdentityKey identityKey)  
      org.jivesoftware.smackx.omemo.trust.OmemoFingerprint getFingerprintOfIdentityKeyPair​(org.whispersystems.libsignal.IdentityKeyPair identityKeyPair)  
      byte[] identityKeyForBundle​(org.whispersystems.libsignal.IdentityKey identityKey)  
      org.whispersystems.libsignal.IdentityKey identityKeyFromBytes​(byte[] data)  
      org.whispersystems.libsignal.IdentityKey identityKeyFromPair​(org.whispersystems.libsignal.IdentityKeyPair identityKeyPair)  
      org.whispersystems.libsignal.IdentityKeyPair identityKeyPairFromBytes​(byte[] data)  
      byte[] identityKeyPairToBytes​(org.whispersystems.libsignal.IdentityKeyPair identityKeyPair)  
      byte[] identityKeyToBytes​(org.whispersystems.libsignal.IdentityKey identityKey)  
      byte[] preKeyForBundle​(org.whispersystems.libsignal.state.PreKeyRecord preKeyRecord)  
      org.whispersystems.libsignal.state.PreKeyRecord preKeyFromBytes​(byte[] bytes)  
      byte[] preKeyPublicKeyForBundle​(org.whispersystems.libsignal.ecc.ECPublicKey preKey)  
      byte[] preKeyToBytes​(org.whispersystems.libsignal.state.PreKeyRecord preKeyRecord)  
      org.whispersystems.libsignal.state.SessionRecord rawSessionFromBytes​(byte[] data)  
      byte[] rawSessionToBytes​(org.whispersystems.libsignal.state.SessionRecord session)  
      org.whispersystems.libsignal.state.SignedPreKeyRecord signedPreKeyFromBytes​(byte[] data)  
      int signedPreKeyIdFromKey​(org.whispersystems.libsignal.state.SignedPreKeyRecord signedPreKey)  
      byte[] signedPreKeyPublicForBundle​(org.whispersystems.libsignal.state.SignedPreKeyRecord signedPreKey)  
      byte[] signedPreKeySignatureFromKey​(org.whispersystems.libsignal.state.SignedPreKeyRecord signedPreKey)  
      byte[] signedPreKeyToBytes​(org.whispersystems.libsignal.state.SignedPreKeyRecord signedPreKeyRecord)  
      • Methods inherited from class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil

        addInBounds, preKeyPublicFromBytes, preKeyPublicKeysForBundle, signedPreKeyPublicFromBytes
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SignalOmemoKeyUtil

        public SignalOmemoKeyUtil()
    • Method Detail

      • generateOmemoIdentityKeyPair

        public org.whispersystems.libsignal.IdentityKeyPair generateOmemoIdentityKeyPair()
        Specified by:
        generateOmemoIdentityKeyPair in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
      • generateOmemoPreKeys

        public java.util.TreeMap<java.lang.Integer,​org.whispersystems.libsignal.state.PreKeyRecord> generateOmemoPreKeys​(int currentPreKeyId,
                                                                                                                               int count)
        Specified by:
        generateOmemoPreKeys in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
      • generateOmemoSignedPreKey

        public org.whispersystems.libsignal.state.SignedPreKeyRecord generateOmemoSignedPreKey​(org.whispersystems.libsignal.IdentityKeyPair identityKeyPair,
                                                                                               int currentPreKeyId)
                                                                                        throws org.jivesoftware.smackx.omemo.exceptions.CorruptedOmemoKeyException
        Specified by:
        generateOmemoSignedPreKey in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
        Throws:
        org.jivesoftware.smackx.omemo.exceptions.CorruptedOmemoKeyException
      • signedPreKeyFromBytes

        public org.whispersystems.libsignal.state.SignedPreKeyRecord signedPreKeyFromBytes​(byte[] data)
                                                                                    throws java.io.IOException
        Specified by:
        signedPreKeyFromBytes in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
        Throws:
        java.io.IOException
      • signedPreKeyToBytes

        public byte[] signedPreKeyToBytes​(org.whispersystems.libsignal.state.SignedPreKeyRecord signedPreKeyRecord)
        Specified by:
        signedPreKeyToBytes in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
      • rawSessionFromBytes

        public org.whispersystems.libsignal.state.SessionRecord rawSessionFromBytes​(byte[] data)
                                                                             throws java.io.IOException
        Specified by:
        rawSessionFromBytes in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
        Throws:
        java.io.IOException
      • rawSessionToBytes

        public byte[] rawSessionToBytes​(org.whispersystems.libsignal.state.SessionRecord session)
        Specified by:
        rawSessionToBytes in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
      • identityKeyPairFromBytes

        public org.whispersystems.libsignal.IdentityKeyPair identityKeyPairFromBytes​(byte[] data)
                                                                              throws org.jivesoftware.smackx.omemo.exceptions.CorruptedOmemoKeyException
        Specified by:
        identityKeyPairFromBytes in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
        Throws:
        org.jivesoftware.smackx.omemo.exceptions.CorruptedOmemoKeyException
      • identityKeyFromBytes

        public org.whispersystems.libsignal.IdentityKey identityKeyFromBytes​(byte[] data)
                                                                      throws org.jivesoftware.smackx.omemo.exceptions.CorruptedOmemoKeyException
        Specified by:
        identityKeyFromBytes in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
        Throws:
        org.jivesoftware.smackx.omemo.exceptions.CorruptedOmemoKeyException
      • ellipticCurvePublicKeyFromBytes

        public org.whispersystems.libsignal.ecc.ECPublicKey ellipticCurvePublicKeyFromBytes​(byte[] data)
                                                                                     throws org.jivesoftware.smackx.omemo.exceptions.CorruptedOmemoKeyException
        Specified by:
        ellipticCurvePublicKeyFromBytes in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
        Throws:
        org.jivesoftware.smackx.omemo.exceptions.CorruptedOmemoKeyException
      • preKeyToBytes

        public byte[] preKeyToBytes​(org.whispersystems.libsignal.state.PreKeyRecord preKeyRecord)
        Specified by:
        preKeyToBytes in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
      • preKeyFromBytes

        public org.whispersystems.libsignal.state.PreKeyRecord preKeyFromBytes​(byte[] bytes)
                                                                        throws java.io.IOException
        Specified by:
        preKeyFromBytes in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
        Throws:
        java.io.IOException
      • bundleFromOmemoBundle

        public org.whispersystems.libsignal.state.PreKeyBundle bundleFromOmemoBundle​(org.jivesoftware.smackx.omemo.element.OmemoBundleElement bundle,
                                                                                     org.jivesoftware.smackx.omemo.internal.OmemoDevice contact,
                                                                                     int preKeyId)
                                                                              throws org.jivesoftware.smackx.omemo.exceptions.CorruptedOmemoKeyException
        Specified by:
        bundleFromOmemoBundle in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
        Throws:
        org.jivesoftware.smackx.omemo.exceptions.CorruptedOmemoKeyException
      • signedPreKeySignatureFromKey

        public byte[] signedPreKeySignatureFromKey​(org.whispersystems.libsignal.state.SignedPreKeyRecord signedPreKey)
        Specified by:
        signedPreKeySignatureFromKey in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
      • signedPreKeyIdFromKey

        public int signedPreKeyIdFromKey​(org.whispersystems.libsignal.state.SignedPreKeyRecord signedPreKey)
        Specified by:
        signedPreKeyIdFromKey in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
      • identityKeyPairToBytes

        public byte[] identityKeyPairToBytes​(org.whispersystems.libsignal.IdentityKeyPair identityKeyPair)
        Specified by:
        identityKeyPairToBytes in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
      • identityKeyFromPair

        public org.whispersystems.libsignal.IdentityKey identityKeyFromPair​(org.whispersystems.libsignal.IdentityKeyPair identityKeyPair)
        Specified by:
        identityKeyFromPair in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
      • identityKeyForBundle

        public byte[] identityKeyForBundle​(org.whispersystems.libsignal.IdentityKey identityKey)
        Specified by:
        identityKeyForBundle in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
      • identityKeyToBytes

        public byte[] identityKeyToBytes​(org.whispersystems.libsignal.IdentityKey identityKey)
        Specified by:
        identityKeyToBytes in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
      • preKeyPublicKeyForBundle

        public byte[] preKeyPublicKeyForBundle​(org.whispersystems.libsignal.ecc.ECPublicKey preKey)
        Specified by:
        preKeyPublicKeyForBundle in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
      • preKeyForBundle

        public byte[] preKeyForBundle​(org.whispersystems.libsignal.state.PreKeyRecord preKeyRecord)
        Specified by:
        preKeyForBundle in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
      • signedPreKeyPublicForBundle

        public byte[] signedPreKeyPublicForBundle​(org.whispersystems.libsignal.state.SignedPreKeyRecord signedPreKey)
        Specified by:
        signedPreKeyPublicForBundle in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
      • getFingerprintOfIdentityKey

        public org.jivesoftware.smackx.omemo.trust.OmemoFingerprint getFingerprintOfIdentityKey​(org.whispersystems.libsignal.IdentityKey identityKey)
        Specified by:
        getFingerprintOfIdentityKey in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>
      • getFingerprintOfIdentityKeyPair

        public org.jivesoftware.smackx.omemo.trust.OmemoFingerprint getFingerprintOfIdentityKeyPair​(org.whispersystems.libsignal.IdentityKeyPair identityKeyPair)
        Specified by:
        getFingerprintOfIdentityKeyPair in class org.jivesoftware.smackx.omemo.util.OmemoKeyUtil<org.whispersystems.libsignal.IdentityKeyPair,​org.whispersystems.libsignal.IdentityKey,​org.whispersystems.libsignal.state.PreKeyRecord,​org.whispersystems.libsignal.state.SignedPreKeyRecord,​org.whispersystems.libsignal.state.SessionRecord,​org.whispersystems.libsignal.ecc.ECPublicKey,​org.whispersystems.libsignal.state.PreKeyBundle>