def save(filename)
      # see https://github.com/zeromq/czmq/issues/1244
      raise ArgumentError, "filename can't be empty" if filename.to_s.empty?
      rc = ffi_delegate.save(filename.to_s)
      return if rc == 0
      raise_zmq_err("error while saving to file %p" % filename)
    end
def save(filename)
      # see https://github.com/zeromq/czmq/issues/1244
      raise ArgumentError, "filename can't be empty" if filename.to_s.empty?
      rc = ffi_delegate.save(filename.to_s)
      return if rc == 0
      raise_zmq_err("error while saving to file %p" % filename)
    end
Save full certificate (public + secret) to files.
 @param filename [String, #to_s] path/filename to public file
 @return [void]
 @raise [ArgumentError] if path is invalid
 @raise [SystemCallError] if this fails
 @note This will create two files: one of the public key and one for the
   secret key. The secret filename is filename + "_secret".