0

This is with reference to sipdroid data encrypt failed I tried using XOR operation instead of reverse byte code for send packets and receive packets in SipdroidSocket.class. I experienced same issue(too much noise) Please guide me in encrypting and decrypting packets in SipdroidSocket.class


Sorry for late reply.I am posting the snippets of the code I tried. Please refer the original RtpSocket.java and SipdroidSocket.java classes for complete view. I am just putting the snippets here.

In RtpSocket.java , I took a static value and collected the packet's header length. Then used this header length in SipdroidSocket.java so as to remove the header part prior tweaking with the payload: In SipdroidSocket.java, following editing were done in Send and Receive functions:

public void receive(DatagramPacket pack) throws IOException {
    if (loaded) {
        impl.receive(pack);
        byte[] b = pack.getData(); // fetch data from receiver
        int len = RtpSocket.header;
        pack.setData(do_something(b, len)); // do the XORing to retrieve
                                            // original data
    } else {
        super.receive(pack);
        byte[] b = pack.getData();
        int len = RtpSocket.header;
        pack.setData(do_something(b, len));
    }
}

public void send(DatagramPacket pack) throws IOException {
    byte[] b = pack.getData(); // fetch original data
    int len = RtpSocket.header;
    pack.setData(do_something(b, len)); // replace with tweaked data
    if (loaded)
        impl.send(pack);
    else
        super.send(pack);
}

private byte[] do_something(byte[] b, int len) {
    // TODO Auto-generated method stub
    int new_buff_len = b.length - len;
    byte[] new_buff = new byte[new_buff_len];
    int i = 0;
    for (i = len; i < b.length; i++) // separating header values
    {
        new_buff[i] = (byte) (b[i] ^ 0x43); // XORing original packet
                                            // payload before sending and
                                            // after receiving to get
                                            // original data on both sides
    }
    return new_buff;
}

Kindly , try it and suggest me please.

Community
  • 1
  • 1

1 Answers1

0

Finally it worked ! Had to meddle with the other parts of the code . XOR operation now works fine and have attained the objective.