Applications/tools

Journal entries about applications and tools.

Firefox: How To Remove Or Add Default Or Built-In CA Certificates

Submitted by Eus
on July 26, 2010 - 3:15pm

The other day I was wondering where Firefox, or to be exact, Mozilla keeps its pre-shipped trusted CA certificates. Googling around I found out that the certificates are compiled as a shared library. Fortunately, I also found out how to manipulate the shared library for my own use.

XPI Must Have zigbert.rsa As The First File In The Archive

Submitted by Eus
on July 26, 2010 - 1:10pm

When I was looking for a step-by-step instruction to sign JavaScript code to gain additional privileges when being run in Firefox, I visited https://www.mozdevgroup.com/docs/pete/Signing-an-XPI.html. Not much can be gained from the site because it is assumed that you already possess a public key certificate that entitles you to sign code. But, there was one thing that caught my attention.

Symptom Of a Certificate Not Having Extension For Object Signing

Submitted by Eus
on July 26, 2010 - 12:37pm

When I was trying to create a signed JAR file that Firefox will allow to gain additional privileges, the biggest problem I faced was rooted at the fact that my certificate authority did not issue a certificate that entitled me to sign code. This simple fact was not clearly visible at the beginning, though.

Programmatically Setting the Value of HTML Input File Element in Firefox

Submitted by Eus
on July 24, 2010 - 5:54am

I had a need to automatically fill the value of an HTML file upload box in Firefox. I thought Greasemonkey would just do the job. But, it was not that simple because to prevent a malicious website to upload any file in your local system without your knowledge, Firefox prevents the value of a file upload box to be set programmatically. Googling for information to do what I wanted did not return a good result other than simple information stating that it would not be possible due to the aforementioned security reason. So, I digged the source code to figure out either the way myself or better googling keywords. Finally, I came up with the right way to do what I wanted.

Segmentation Fault When Debugging Firefox (warning: Cannot initialize thread debugging library: generic error)

Submitted by Eus
on July 19, 2010 - 2:27pm

The other day I built a debuggable Firefox from the source code. The object directory is obj-debug-moz-hunspell within the source directory.

Convert Keys Among GPG, OpenSSL, SSH, jarsigner And NSS

Submitted by Eus
on July 18, 2010 - 12:40pm

Key conversion for GPG <-> OpenSSL <-> SSH: http://www.sysmic.org/dotclear/index.php?post/2010/03/24/Convert-keys-be...

Key conversion for OpenSSL <-> jarsigner: http://forums.sun.com/thread.jspa?threadID=5419870

# CA
openssl genrsa -aes128 -out ca/ca.key -passout pass:sabre150 2048

Where OpenSSL Stores Its Trusted CA Certificates: Using "openssl pkcs12 -export -chain"

Submitted by Eus
on July 18, 2010 - 12:02pm

About three weeks ago I tried to export a public key certificate X along with the certificate of the CA that signs X, by adding "-chain" switch to "openssl pkcs12 -export -out del.pkcs12 -in newcert.pem -inkey newkey.pem". However, I got an error: Error unable to get local issuer certificate getting chain.

Sqlite3 Transaction

Submitted by Eus
on April 25, 2010 - 11:55pm

After some time into web application development during my undergraduate study, I had wondered about the effect of modifying the underlying DB tables when a query result set over the DB tables are being iterated by a PHP script making an HTML table. Well, I believe that the result set is contained in its own memory and is detached from the underlying DB tables so the iteration will not be affected by any change to the underlying DB. How about the use of a cursor or a similar mechanism in iterating the result set? Well, I believe that the cursor operates on the result set memory instead of on the underlying DB. Well, those assumptions can be wrong and the DB can choose to employ locking. If locking is employed, how does it affect the other writers or readers? I think the sure way to answer the posed questions is by conducting some tests to see the behavior of the DB when using its API. Below is the result of conducting some tests on Sqlite3 to answer the above questions when I was working on Service Publishing AP.

Huawei E160 On GNU Linux Ubuntu 9.04 (Jaunty)

Submitted by Eus
on April 23, 2010 - 6:11am

After successfully getting an Internet connection using Prolink PHS100 here, my brother needs to use Huawei E160 with that laptop. It turned out that for Huawei, /dev/ttyUSB0 should be used. The steps are just as follows:

1. Fire `sudo aptitude install wvdial' if you don't have it installed yet.

Using scripted authentication

Submitted by olecom
on April 5, 2010 - 3:57am

I've found a way to use proposed in "ssh brute force" post method to auth users on some kind of services, server may provide, but where software may not support authentication at all.

Opinions on this auth for tinyproxy are welcome.

https://www.banu.com/pipermail/tinyproxy-users-list/2010-April/000059.html
____

Prolink PHS100 On GNU Linux Ubuntu 9.04 (Jaunty)

Submitted by Eus
on March 31, 2010 - 1:56am

My first experience of dealing with GSM modem was for an SMS gateway using Huawei E220 in which only a SIM card without a broadband Internet connection was used. I had tried several times in those days to connect to the Internet using SIM cards with a broadband Internet connection to no avail because I always got stuck when executing `sudo wvdial' in which fancy ASCII characters were displayed on the screen. I didn't pursue the solution because a GSM modem was still expensive and the 3G signal was weak at my place. But, this time I really needed to connect to the Internet using Prolink PHS100 GSM modem.

JavaScript: Dynamically Deleting or Altering a Table Cell Needs Refreshes

Submitted by Eus
on March 5, 2010 - 11:12am

One frustrating point that I encountered twice during my course in using JavaScript is that a dynamic modification of a table leaves traces on the screen like missing background color. Googling for the solution was not that easy. But, at the end I found this good forum thread: http://www.dynamicdrive.com/forums/showthread.php?t=25139. Basically, you need to repaint the element yourself.

Sqlite3 Hangs Getting Stuck In OpenWRT Kamikaze 8.09.1

Submitted by Eus
on March 1, 2010 - 11:30pm

Having a programming project for a service publishing wireless access point running OpenWRT Kamikaze 8.09.1 in which I decide to use sqlite3 as the data backend, my first attempt in cross-compiling and running the service inquiry handler daemon that was fully tested on my laptop was greeted with a hang.

Android ListView Selection Problem

Submitted by Eus
on December 31, 2009 - 3:55pm

About some weeks ago I got the chance to fiddle with Android (http://www.android.com) that is used in mobile service discovery research in Mobile Communication System Engineering Lab (http://ds.informatik.rwth-aachen.de/teaching/ws0910/mcse/). The assignment was to create a simple ToDo list (http://github.com/eus/android_todo). But, it turned out that programming Android's ListActivity to highlight a ToDo item was not that simple.

ASUS WL-500W Router Internals

Submitted by Eus
on December 24, 2009 - 11:42am

Some weeks ago I had the chance to fiddle with OpenWRT (http://openwrt.org) on ASUS WL-500W router because I got an assignment to extend Screamer (http://github.com/eus/screamer/) further: assignment 4 (http://github.com/eus/screamer/blob/master/doc/assignment4/assignment4.txt). The OpenWRT wiki was sufficient to get everything up and running (http://nuwiki.openwrt.org/oldwiki/openwrtdocs/hardware/asus/wl500w), but the network configuration was not right for the task at hand that required that traffic from and to each LAN port and the WLAN interface has to be filtered.