Package org.zeromq

Class ZCertStore

java.lang.Object
org.zeromq.ZCertStore

public class ZCertStore extends Object
To authenticate new clients using the ZeroMQ CURVE security mechanism, we have to check that the client's public key matches a key we know and accept. There are numerous ways to store accepted client public keys. The mechanism CZMQ implements is "certificates" (plain text files) held in a "certificate store" (a disk directory). This class works with such certificate stores, and lets you easily load them from disk, and check if a given client public key is known or not. The ZCert class does the work of managing a single certificate.

Those files need to be in ZMP-Format which is created by ZConfig

  • Field Details

  • Constructor Details

    • ZCertStore

      public ZCertStore(String location)
      Create a Certificate Store at that file system folder location
      Parameters:
      location -
    • ZCertStore

      public ZCertStore(String location, ZCertStore.Fingerprinter fingerprinter)
  • Method Details

    • traverseDirectory

      private boolean traverseDirectory(File root, ZCertStore.IFileVisitor visitor)
    • containsPublicKey

      public boolean containsPublicKey(byte[] publicKey)
      Check if a public key is in the certificate store.
      Parameters:
      publicKey - needs to be a 32 byte array representing the public key
    • containsPublicKey

      public boolean containsPublicKey(String publicKey)
      check if a z85-based public key is in the certificate store. This method will scan the folder for changes on every call
      Parameters:
      publicKey -
    • getMetadata

      public ZMetadata getMetadata(String publicKey)
    • loadFiles

      private void loadFiles()
    • getCertificatesCount

      int getCertificatesCount()
    • reloadIfNecessary

      boolean reloadIfNecessary()
    • checkForChanges

      boolean checkForChanges()
      Check if files in the certificate folders have been added or removed.
    • modified

      private boolean modified(byte[] fingerprint, File path)