use of android.net.Credentials in project stetho by facebook.
the class SecureSocketHandler method enforcePermission.
private static void enforcePermission(Context context, LocalSocket peer) throws IOException, PeerAuthorizationException {
Credentials credentials = peer.getPeerCredentials();
int uid = credentials.getUid();
int pid = credentials.getPid();
if (LogUtil.isLoggable(Log.VERBOSE)) {
LogUtil.v("Got request from uid=%d, pid=%d", uid, pid);
}
String requiredPermission = Manifest.permission.DUMP;
int checkResult = context.checkPermission(requiredPermission, pid, uid);
if (checkResult != PackageManager.PERMISSION_GRANTED) {
throw new PeerAuthorizationException("Peer pid=" + pid + ", uid=" + uid + " does not have " + requiredPermission);
}
}
use of android.net.Credentials in project android_frameworks_base by AOSPA.
the class LocalSocketTest method testBasic.
@SmallTest
public void testBasic() throws Exception {
LocalServerSocket ss;
LocalSocket ls;
LocalSocket ls1;
ss = new LocalServerSocket("android.net.LocalSocketTest");
ls = new LocalSocket();
ls.connect(new LocalSocketAddress("android.net.LocalSocketTest"));
ls1 = ss.accept();
// Test trivial read and write
ls.getOutputStream().write(42);
assertEquals(42, ls1.getInputStream().read());
// Test getting credentials
Credentials c = ls1.getPeerCredentials();
MoreAsserts.assertNotEqual(0, c.getPid());
// Test sending and receiving file descriptors
ls.setFileDescriptorsForSend(new FileDescriptor[] { FileDescriptor.in });
ls.getOutputStream().write(42);
assertEquals(42, ls1.getInputStream().read());
FileDescriptor[] out = ls1.getAncillaryFileDescriptors();
assertEquals(1, out.length);
// Test multible byte write and available()
ls1.getOutputStream().write(new byte[] { 0, 1, 2, 3, 4, 5 }, 1, 5);
assertEquals(1, ls.getInputStream().read());
assertEquals(4, ls.getInputStream().available());
byte[] buffer = new byte[16];
int countRead;
countRead = ls.getInputStream().read(buffer, 1, 15);
assertEquals(4, countRead);
assertEquals(2, buffer[1]);
assertEquals(3, buffer[2]);
assertEquals(4, buffer[3]);
assertEquals(5, buffer[4]);
// Try various array-out-of-bound cases
try {
ls.getInputStream().read(buffer, 1, 16);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getOutputStream().write(buffer, 1, 16);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getOutputStream().write(buffer, -1, 15);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getOutputStream().write(buffer, 0, -1);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getInputStream().read(buffer, -1, 15);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getInputStream().read(buffer, 0, -1);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
// Try read of length 0
ls.getOutputStream().write(42);
countRead = ls1.getInputStream().read(buffer, 0, 0);
assertEquals(0, countRead);
assertEquals(42, ls1.getInputStream().read());
ss.close();
ls.close();
try {
ls.getOutputStream().write(42);
fail("expected exception");
} catch (IOException ex) {
// Expected
}
try {
ls.getInputStream().read();
fail("expected exception");
} catch (IOException ex) {
// Expected
}
try {
ls1.getOutputStream().write(42);
fail("expected exception");
} catch (IOException ex) {
// Expected
}
// Try read on socket whose peer has closed
assertEquals(-1, ls1.getInputStream().read());
ls1.close();
}
use of android.net.Credentials in project android_frameworks_base by ResurrectionRemix.
the class LocalSocketTest method testBasic.
@SmallTest
public void testBasic() throws Exception {
LocalServerSocket ss;
LocalSocket ls;
LocalSocket ls1;
ss = new LocalServerSocket("android.net.LocalSocketTest");
ls = new LocalSocket();
ls.connect(new LocalSocketAddress("android.net.LocalSocketTest"));
ls1 = ss.accept();
// Test trivial read and write
ls.getOutputStream().write(42);
assertEquals(42, ls1.getInputStream().read());
// Test getting credentials
Credentials c = ls1.getPeerCredentials();
MoreAsserts.assertNotEqual(0, c.getPid());
// Test sending and receiving file descriptors
ls.setFileDescriptorsForSend(new FileDescriptor[] { FileDescriptor.in });
ls.getOutputStream().write(42);
assertEquals(42, ls1.getInputStream().read());
FileDescriptor[] out = ls1.getAncillaryFileDescriptors();
assertEquals(1, out.length);
// Test multible byte write and available()
ls1.getOutputStream().write(new byte[] { 0, 1, 2, 3, 4, 5 }, 1, 5);
assertEquals(1, ls.getInputStream().read());
assertEquals(4, ls.getInputStream().available());
byte[] buffer = new byte[16];
int countRead;
countRead = ls.getInputStream().read(buffer, 1, 15);
assertEquals(4, countRead);
assertEquals(2, buffer[1]);
assertEquals(3, buffer[2]);
assertEquals(4, buffer[3]);
assertEquals(5, buffer[4]);
// Try various array-out-of-bound cases
try {
ls.getInputStream().read(buffer, 1, 16);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getOutputStream().write(buffer, 1, 16);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getOutputStream().write(buffer, -1, 15);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getOutputStream().write(buffer, 0, -1);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getInputStream().read(buffer, -1, 15);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getInputStream().read(buffer, 0, -1);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
// Try read of length 0
ls.getOutputStream().write(42);
countRead = ls1.getInputStream().read(buffer, 0, 0);
assertEquals(0, countRead);
assertEquals(42, ls1.getInputStream().read());
ss.close();
ls.close();
try {
ls.getOutputStream().write(42);
fail("expected exception");
} catch (IOException ex) {
// Expected
}
try {
ls.getInputStream().read();
fail("expected exception");
} catch (IOException ex) {
// Expected
}
try {
ls1.getOutputStream().write(42);
fail("expected exception");
} catch (IOException ex) {
// Expected
}
// Try read on socket whose peer has closed
assertEquals(-1, ls1.getInputStream().read());
ls1.close();
}
use of android.net.Credentials in project android_frameworks_base by ParanoidAndroid.
the class LocalSocketTest method testBasic.
@SmallTest
public void testBasic() throws Exception {
LocalServerSocket ss;
LocalSocket ls;
LocalSocket ls1;
ss = new LocalServerSocket("android.net.LocalSocketTest");
ls = new LocalSocket();
ls.connect(new LocalSocketAddress("android.net.LocalSocketTest"));
ls1 = ss.accept();
// Test trivial read and write
ls.getOutputStream().write(42);
assertEquals(42, ls1.getInputStream().read());
// Test getting credentials
Credentials c = ls1.getPeerCredentials();
MoreAsserts.assertNotEqual(0, c.getPid());
// Test sending and receiving file descriptors
ls.setFileDescriptorsForSend(new FileDescriptor[] { FileDescriptor.in });
ls.getOutputStream().write(42);
assertEquals(42, ls1.getInputStream().read());
FileDescriptor[] out = ls1.getAncillaryFileDescriptors();
assertEquals(1, out.length);
// Test multible byte write and available()
ls1.getOutputStream().write(new byte[] { 0, 1, 2, 3, 4, 5 }, 1, 5);
assertEquals(1, ls.getInputStream().read());
assertEquals(4, ls.getInputStream().available());
byte[] buffer = new byte[16];
int countRead;
countRead = ls.getInputStream().read(buffer, 1, 15);
assertEquals(4, countRead);
assertEquals(2, buffer[1]);
assertEquals(3, buffer[2]);
assertEquals(4, buffer[3]);
assertEquals(5, buffer[4]);
// Try various array-out-of-bound cases
try {
ls.getInputStream().read(buffer, 1, 16);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getOutputStream().write(buffer, 1, 16);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getOutputStream().write(buffer, -1, 15);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getOutputStream().write(buffer, 0, -1);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getInputStream().read(buffer, -1, 15);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getInputStream().read(buffer, 0, -1);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
// Try read of length 0
ls.getOutputStream().write(42);
countRead = ls1.getInputStream().read(buffer, 0, 0);
assertEquals(0, countRead);
assertEquals(42, ls1.getInputStream().read());
ss.close();
ls.close();
try {
ls.getOutputStream().write(42);
fail("expected exception");
} catch (IOException ex) {
// Expected
}
try {
ls.getInputStream().read();
fail("expected exception");
} catch (IOException ex) {
// Expected
}
try {
ls1.getOutputStream().write(42);
fail("expected exception");
} catch (IOException ex) {
// Expected
}
// Try read on socket whose peer has closed
assertEquals(-1, ls1.getInputStream().read());
ls1.close();
}
use of android.net.Credentials in project platform_frameworks_base by android.
the class LocalSocketTest method testBasic.
@SmallTest
public void testBasic() throws Exception {
LocalServerSocket ss;
LocalSocket ls;
LocalSocket ls1;
ss = new LocalServerSocket("android.net.LocalSocketTest");
ls = new LocalSocket();
ls.connect(new LocalSocketAddress("android.net.LocalSocketTest"));
ls1 = ss.accept();
// Test trivial read and write
ls.getOutputStream().write(42);
assertEquals(42, ls1.getInputStream().read());
// Test getting credentials
Credentials c = ls1.getPeerCredentials();
MoreAsserts.assertNotEqual(0, c.getPid());
// Test sending and receiving file descriptors
ls.setFileDescriptorsForSend(new FileDescriptor[] { FileDescriptor.in });
ls.getOutputStream().write(42);
assertEquals(42, ls1.getInputStream().read());
FileDescriptor[] out = ls1.getAncillaryFileDescriptors();
assertEquals(1, out.length);
// Test multible byte write and available()
ls1.getOutputStream().write(new byte[] { 0, 1, 2, 3, 4, 5 }, 1, 5);
assertEquals(1, ls.getInputStream().read());
assertEquals(4, ls.getInputStream().available());
byte[] buffer = new byte[16];
int countRead;
countRead = ls.getInputStream().read(buffer, 1, 15);
assertEquals(4, countRead);
assertEquals(2, buffer[1]);
assertEquals(3, buffer[2]);
assertEquals(4, buffer[3]);
assertEquals(5, buffer[4]);
// Try various array-out-of-bound cases
try {
ls.getInputStream().read(buffer, 1, 16);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getOutputStream().write(buffer, 1, 16);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getOutputStream().write(buffer, -1, 15);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getOutputStream().write(buffer, 0, -1);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getInputStream().read(buffer, -1, 15);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
try {
ls.getInputStream().read(buffer, 0, -1);
fail("expected exception");
} catch (ArrayIndexOutOfBoundsException ex) {
// excpected
}
// Try read of length 0
ls.getOutputStream().write(42);
countRead = ls1.getInputStream().read(buffer, 0, 0);
assertEquals(0, countRead);
assertEquals(42, ls1.getInputStream().read());
ss.close();
ls.close();
try {
ls.getOutputStream().write(42);
fail("expected exception");
} catch (IOException ex) {
// Expected
}
try {
ls.getInputStream().read();
fail("expected exception");
} catch (IOException ex) {
// Expected
}
try {
ls1.getOutputStream().write(42);
fail("expected exception");
} catch (IOException ex) {
// Expected
}
// Try read on socket whose peer has closed
assertEquals(-1, ls1.getInputStream().read());
ls1.close();
}
Aggregations