Java
- VM args
-Duser.timezone=Brazil/East -Dfile.encoding=ISO-8859-1 -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Address=false
- sched_(get|set)affinity
1) Create ThreadLib.java:2) Type:public class ThreadLib { ... public static native int getAffinity(); public static native int setAffinity(int mask); ... }
javah -jni ThreadLib to create ThreadLib.h
3) Create ThreadLib.c:4) Compile shared library with:#define _GNU_SOURCE #include <jni.h> #include <sched.h> #include "ThreadLib.h" JNIEXPORT jint JNICALL Java_ThreadLib_getAffinity(JNIEnv *env, jclass class) { unsigned long mask; unsigned int len = sizeof(mask); if (sched_getaffinity(0, len, &mask) < 0) { return -1; } return mask; } JNIEXPORT jint JNICALL Java_ThreadLib_setAffinity(JNIEnv *env, jclass class, jint m) { unsigned long mask = (unsigned long) m; unsigned int len = sizeof(mask); if (sched_setaffinity(0, len, &mask) < 0) { return -1; } return m; }
gcc -fPIC -shared -I /home/irocha/j2se/include -I /home/irocha/j2se/include/linux/ ThreadLib.c -o libThreadLib.so
5) Set LD_LIBRARY_PATH
6) Execute any java code with:int af = ThreadLib.getAffinity(); System.out.println("Affinity: " + af); int ret = ThreadLib.setAffinity(1); System.out.println("SetAffinity: " + ret);
- Java + MySQL + SSL
1) Create CA certificate:openssl genrsa 2048 > ca-key.pem openssl req -new -x509 -nodes -days 1000 -key ca-key.pem > ca-cert.pem
2) Create server certificate:openssl req -newkey rsa:2048 -days 1000 -nodes -keyout server-key.pem > server-req.pem openssl x509 -req -in server-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem
3) Create client certificate:openssl req -newkey rsa:2048 -days 1000 -nodes -keyout client-key.pem > client-req.pem openssl x509 -req -in client-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > client-cert.pem
4) Hack:openssl x509 -outform DER -in client-cert.pem -out client.cert
5) Java Setup:keytool -import -alias mysqlServerCACert -file cacert.pem -keystore truststore keytool -import -file client.cert -alias mysqlClientCertificate -keystore keystore
Java Options:-Djavax.net.ssl.keyStore=path_to_keystore_file -Djavax.net.ssl.keyStorePassword=password -Djavax.net.ssl.trustStore=path_to_truststore_file -Djavax.net.ssl.trustStorePassword=password
orTests:System.setProperty("javax.net.ssl.keyStore","path_to_keystore_file"); System.setProperty("javax.net.ssl.keyStorePassword","password"); System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file"); System.setProperty("javax.net.ssl.trustStorePassword","password");
openssl genrsa -out key.pem 1024 openssl rsa -in key.pem -outform DER -out key.der openssl rsa -pubout -outform DER -out keyp.der -in key.pem openssl base64 -in key.der -out key.pri openssl base64 -in keyp.der -out key.pub openssl rsautl -inkey key.pem -in test.txt -out test.enc -encrypt openssl rsautl -inkey key.pem -in test.enc -out test.txt -decrypt
andopenssl enc -aes-256-cbc -in file.txt -out file.enc -iv 0 -K eab9855a666fb697e31ee606dc372a248d29b92528612e6f009f55874bcff6f8 openssl enc -d -aes-256-cbc -in file.enc -iv 0 -K eab9855a666fb697e31ee606dc372a248d29b92528612e6f009f55874bcff6f8
