code: public void updateEntry(long expiryTime, boolean trust,
  			byte[] retainedSecret, byte[] rs2, String number) {
  		if (platform.isVerboseLogging()) {
  			platform.getLogger().log(
  					"ZRTPCache: updateEntry("
  							+ expiryTime
  							+ ", "
  							+ trust
  							+ ", "
  							+ platform.getUtils().byteToHexString(
  									retainedSecret) + ", "
  							+ platform.getUtils().byteToHexString(rs2) + ","
  							+ number + ")");
  		}
  		if (expiryTime == 0) {
  			cache.remove(currentZid);
  			currentTrust = false;
  			currentRs1 = null;
  			currentRs2 = null;
  			currentNumber = null;
  		} else {
  			byte[] data = new byte[(rs2 == null) ? 41 : 73];
  			for (int i = 0; i != 8; ++i) {
  				data[i] = (byte) (expiryTime & 0xff);
  				expiryTime >>>= 8;
  			}
  			data[8] = (byte) (trust ? 1 : 0);
  			System.arraycopy(retainedSecret, 0, data, 9, 32);
  			if (rs2 != null) {
  				System.arraycopy(rs2, 0, data, 41, 32);
  			}
  			cache.put(currentZid, data, number);
  			currentTrust = trust;
  			currentRs1 = retainedSecret;
  			currentRs2 = rs2;
  			currentNumber = number;
  		}
  	}
docs: Updates the entry for the selected remote ZID.
  
  @param retainedSecret
  the new retained secret.
  @param expiryTime
  the expiry time, 0 means the entry should be erased.
  @param keepRs2
  specifies whether the old rs2 should be kept rather than
  copying old rs1 into rs2.
  @param number
  Phone Number associated with the current zid