- var safetyNumber = ns.getString("verified_safety_number");
- if (safetyNumber != null) {
- safetyNumber = safetyNumber.replaceAll(" ", "");
- if (safetyNumber.length() == 66) {
- byte[] fingerprintBytes;
- try {
- fingerprintBytes = Hex.toByteArray(safetyNumber.toLowerCase(Locale.ROOT));
- } catch (Exception e) {
- System.err.println(
- "Failed to parse the fingerprint, make sure the fingerprint is a correctly encoded hex string without additional characters.");
- return 1;
- }
- boolean res;
- try {
- res = m.trustIdentityVerified(number, fingerprintBytes);
- } catch (InvalidNumberException e) {
- ErrorUtils.handleInvalidNumberException(e);
- return 1;
- }
- if (!res) {
- System.err.println(
- "Failed to set the trust for the fingerprint of this number, make sure the number and the fingerprint are correct.");
- return 1;
- }
- } else if (safetyNumber.length() == 60) {
- boolean res;
- try {
- res = m.trustIdentityVerifiedSafetyNumber(number, safetyNumber);
- } catch (InvalidNumberException e) {
- ErrorUtils.handleInvalidNumberException(e);
- return 1;
- }
- if (!res) {
- System.err.println(
- "Failed to set the trust for the safety number of this phone number, make sure the phone number and the safety number are correct.");
- return 1;
- }
- } else {
- System.err.println(
- "Safety number has invalid format, either specify the old hex fingerprint or the new safety number");
- return 1;
+ var safetyNumber = ns.getString("verified-safety-number");
+ if (safetyNumber == null) {
+ throw new UserErrorException(
+ "You need to specify the fingerprint/safety number you have verified with -v SAFETY_NUMBER");
+ }
+
+ safetyNumber = safetyNumber.replaceAll(" ", "");
+ if (safetyNumber.length() == 66) {
+ byte[] fingerprintBytes;
+ try {
+ fingerprintBytes = Hex.toByteArray(safetyNumber.toLowerCase(Locale.ROOT));
+ } catch (Exception e) {
+ throw new UserErrorException(
+ "Failed to parse the fingerprint, make sure the fingerprint is a correctly encoded hex string without additional characters.");
+ }
+ boolean res;
+ try {
+ res = m.trustIdentityVerified(recipient, fingerprintBytes);
+ } catch (UnregisteredRecipientException e) {
+ throw new UserErrorException("The user " + e.getSender().getIdentifier() + " is not registered.");
+ }
+ if (!res) {
+ throw new UserErrorException(
+ "Failed to set the trust for the fingerprint of this number, make sure the number and the fingerprint are correct.");
+ }
+ } else if (safetyNumber.length() == 60) {
+ boolean res;
+ try {
+ res = m.trustIdentityVerifiedSafetyNumber(recipient, safetyNumber);
+ } catch (UnregisteredRecipientException e) {
+ throw new UserErrorException("The user " + e.getSender().getIdentifier() + " is not registered.");
+ }
+ if (!res) {
+ throw new UserErrorException(
+ "Failed to set the trust for the safety number of this phone number, make sure the phone number and the safety number are correct.");