Class BlindCache


  • class BlindCache
    extends Object
    Cache of blinding data. See proposal 123.
    Since:
    0.9.40
    • Constructor Detail

      • BlindCache

        public BlindCache​(RouterContext ctx)
        Caller MUST call startup() to load persistent cache from disk
    • Method Detail

      • shutdown

        public void shutdown()
        May be restarted by calling startup() again.
      • startup

        public void startup()
      • getHash

        public Hash getHash​(Destination dest)
        The hash to lookup for a dest. If known to be blinded, returns the current blinded hash. If not known to be blinded, returns the standard dest hash.
        Parameters:
        dest - may or may not be blinded
        Returns:
        the unblinded or blinded hash
      • getHash

        public Hash getHash​(Hash h)
        The hash to lookup for a dest hash. If known to be blinded, returns the current blinded hash. If not known to be blinded, returns h.
        Parameters:
        h - may or may not be blinded
        Returns:
        the blinded hash or h
      • getBlindedHash

        public Hash getBlindedHash​(Destination dest)
        The hash to lookup for a dest. If known to be blinded, returns the current blinded hash. If not known to be blinded, returns null.
        Parameters:
        dest - may or may not be blinded
        Returns:
        the blinded hash or null if not blinded
      • getBlindedHash

        public Hash getBlindedHash​(SigningPublicKey spk)
        The hash to lookup for a SPK known to be blinded. Default blinded type assumed. Secret assumed null.
        Parameters:
        spk - known to be blinded
        Returns:
        the blinded hash
        Throws:
        IllegalArgumentException - on various errors
      • setBlinded

        public void setBlinded​(Destination dest,
                               SigType blindedType,
                               String secret)
        Mark a destination as known to be blinded
        Parameters:
        dest - known to be blinded
        blindedType - null for default
        secret - may be null
        Throws:
        IllegalArgumentException - on various errors
      • setBlinded

        public void setBlinded​(Destination dest)
        Add the destination to the cache entry. Must previously be in cache.
        Parameters:
        dest - known to be blinded
        Throws:
        IllegalArgumentException - on various errors
      • addToCache

        public void addToCache​(BlindData bd)
        Persists immediately if secret or privkey is non-null
      • getData

        public BlindData getData​(SigningPublicKey spk)
        The cached data or null
        Parameters:
        spk - the unblinded public key
      • getReverseData

        public BlindData getReverseData​(SigningPublicKey spk)
        The cached data or null
        Parameters:
        spk - the blinded public key
      • rollover

        public void rollover()
        Refresh all the data at midnight
      • getData

        public List<BlindData> getData()
        For console ConfigKeyringHelper
        Returns:
        list is copied
        Since:
        0.9.41
      • removeBlindData

        public boolean removeBlindData​(SigningPublicKey spk)
        For console ConfigKeyringHelper. Persists immediately if removed.
        Parameters:
        spk - the unblinded public key
        Returns:
        true if removed
        Since:
        0.9.41