Skip to content
This repository was archived by the owner on Oct 27, 2025. It is now read-only.

Commit c57438b

Browse files
authored
Merge pull request #597 from open-eid/MOPPAND-1556
Set NFC true in User-Agent for NFC signing.
2 parents 98ef28e + 4006ea4 commit c57438b

File tree

5 files changed

+14
-5
lines changed

5 files changed

+14
-5
lines changed

app/src/main/java/ee/ria/DigiDoc/android/model/idcard/IdCardService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public Single<SignedContainer> sign(Context context, Token token, SignedContaine
7777
return container.sign(context, data.signCertificate().data(),
7878
signData -> ByteString.of(token.calculateSignature(pin2,
7979
signData.toByteArray(),
80-
data.signCertificate().ellipticCurve())), roleData, true);
80+
data.signCertificate().ellipticCurve())), roleData, true, false);
8181
})
8282
.subscribeOn(Schedulers.io())
8383
.observeOn(AndroidSchedulers.mainThread());

app/src/main/java/ee/ria/DigiDoc/android/signature/update/SignatureAddSource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ public Single<SignedContainer> sign(Context context, String signatureValue, byte
214214
@Nullable RoleData roleData) {
215215
return Single
216216
.fromCallable(() -> container.sign(context, ByteString.of(dataToSign),
217-
signData -> ByteString.encodeUtf8(signatureValue), roleData, false))
217+
signData -> ByteString.encodeUtf8(signatureValue), roleData, false, false))
218218
.subscribeOn(Schedulers.io())
219219
.observeOn(AndroidSchedulers.mainThread());
220220
}

app/src/main/java/ee/ria/DigiDoc/android/signature/update/nfc/NFCOnSubscribe.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ private NFCResponse onTagDiscovered(NfcAdapter adapter, Tag tag) {
136136
Timber.log(Log.DEBUG, "Set ENV: %x %s", r.code, Hex.toHexString(r.data));
137137

138138
container.sign(navigator.activity(), cert.data(),
139-
signData -> ByteString.of(nfc.calculateSignature(signData.toByteArray())), role, false);
139+
signData -> ByteString.of(nfc.calculateSignature(signData.toByteArray())), role, false, true);
140140
} catch (TagLostException exc) {
141141
Timber.log(Log.ERROR, exc.getMessage());
142142
result = NFCResponse.createWithStatus(SessionStatusResponse.ProcessStatus.GENERAL_ERROR, navigator.activity().getString(R.string.signature_update_nfc_tag_lost));

common-lib/src/main/java/ee/ria/DigiDoc/common/UserAgentUtil.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ public final class UserAgentUtil {
2727
private UserAgentUtil() {}
2828

2929
public static String getUserAgent(Context context, boolean shouldIncludeDevices) {
30+
return getUserAgent(context, shouldIncludeDevices, false);
31+
}
32+
33+
public static String getUserAgent(Context context, boolean shouldIncludeDevices,
34+
boolean isNFCSignature) {
3035
ArrayList<String> deviceProductNames = new ArrayList<>();
3136
StringBuilder initializingMessage = new StringBuilder();
3237

@@ -41,6 +46,9 @@ public static String getUserAgent(Context context, boolean shouldIncludeDevices)
4146
if (shouldIncludeDevices && !deviceProductNames.isEmpty()) {
4247
initializingMessage.append(" Devices: ").append(TextUtils.join(", ", deviceProductNames));
4348
}
49+
if (isNFCSignature) {
50+
initializingMessage.append(" NFC: true");
51+
}
4452
}
4553

4654
return initializingMessage.toString();

sign-lib/src/main/java/ee/ria/DigiDoc/sign/SignedContainer.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,15 +210,16 @@ public final SignedContainer addAdEsSignature(byte[] adEsSignature) throws Excep
210210

211211
public final SignedContainer sign(Context context, ByteString certificate,
212212
Function<ByteString, ByteString> signFunction,
213-
@Nullable RoleData roleData, boolean userAgentDevices) throws Exception {
213+
@Nullable RoleData roleData, boolean userAgentDevices,
214+
boolean isNFCSignature) throws Exception {
214215
ee.ria.libdigidocpp.Signature signature = null;
215216

216217
try {
217218
Container container = container(file(), false);
218219

219220
ExternalSigner signer = new ExternalSigner(certificate.toByteArray());
220221
signer.setProfile(signatureProfile());
221-
signer.setUserAgent(UserAgentUtil.getUserAgent(context, userAgentDevices));
222+
signer.setUserAgent(UserAgentUtil.getUserAgent(context, userAgentDevices, isNFCSignature));
222223

223224
if (roleData != null) {
224225
signer.setSignerRoles(new StringVector(TextUtil.removeEmptyStrings(roleData.getRoles())));

0 commit comments

Comments
 (0)