Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c8395d64 authored by Guojing Yuan's avatar Guojing Yuan Committed by Automerger Merge Worker
Browse files

Merge "[Secure Channel] Establish secure connection on sendMessage" into...

Merge "[Secure Channel] Establish secure connection on sendMessage" into udc-dev am: f1415907 am: 76d47057

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23128745



Change-Id: Id3a8473c6e0953841e8e46d5e5fb5d414143f4bd
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 81ef0936 76d47057
Loading
Loading
Loading
Loading
+15 −16
Original line number Diff line number Diff line
@@ -67,25 +67,11 @@ class SecureTransport extends Transport implements SecureChannel.Callback {
        mShouldProcessRequests = false;
    }

    @Override
    public Future<byte[]> requestForResponse(int message, byte[] data) {
        // Check if channel is secured and start securing
        if (!mShouldProcessRequests) {
            Slog.d(TAG, "Establishing secure connection.");
            try {
                mSecureChannel.establishSecureConnection();
            } catch (Exception e) {
                Slog.w(TAG, "Failed to initiate secure channel handshake.", e);
                onError(e);
            }
        }

        return super.requestForResponse(message, data);
    }

    @Override
    protected void sendMessage(int message, int sequence, @NonNull byte[] data)
            throws IOException {
        establishSecureConnection();

        if (DEBUG) {
            Slog.d(TAG, "Queueing message 0x" + Integer.toHexString(message)
                    + " sequence " + sequence + " length " + data.length
@@ -103,6 +89,19 @@ class SecureTransport extends Transport implements SecureChannel.Callback {
        }
    }

    private void establishSecureConnection() {
        // Check if channel is secured and start securing
        if (!mShouldProcessRequests) {
            Slog.d(TAG, "Establishing secure connection.");
            try {
                mSecureChannel.establishSecureConnection();
            } catch (Exception e) {
                Slog.w(TAG, "Failed to initiate secure channel handshake.", e);
                onError(e);
            }
        }
    }

    @Override
    public void onSecureConnection() {
        mShouldProcessRequests = true;