<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Java Security and Networking</title><link>http://pipes.yahoo.com/pipes/pipe.info?_id=_rn8QKpg3hGZt64je0xjxw</link><description>Pipes Output</description><language>en</language><generator>http://pipes.yahoo.com/pipes/</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/javasec" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Sean Mullan:   Using more recent Apache XML Security Libraries with JDK 6 or JDK 7</title><link>http://feedproxy.google.com/~r/javasec/~3/QCrUDqtdOeQ/using_more_recent_apache_xml</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sean Mullan</dc:creator><pubDate>Thu, 01 Oct 2009 01:57:48 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/mullan/entry/using_more_recent_apache_xml</guid><description>This question has come up in user forums quite a bit: "how can I use a more recent Apache XML Security library with the XML Signature APIs (JSR 105) in JDK 6 and JDK 7?" 
Most of the time, you will not need to do this. Our JDK 6/7 XML Signature implementation is based on Apache XML Security and we try to keep up with the latest release. However, there may be a bug fix or new algorithm that you really need and are willing to depend on a more recent version of the Apache XML Security library that has that fix.&amp;nbsp; Here is what you need to do if so:  Place the Apache xmlsec.jar in the endorsed...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/QCrUDqtdOeQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/mullan/entry/using_more_recent_apache_xml</feedburner:origLink></item><item><title>Sean Mullan:   Using stronger XML Signature Algorithms in JDK 7</title><link>http://feedproxy.google.com/~r/javasec/~3/GtBh6EOYqu0/using_stronger_xml_signature_algorithms</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sean Mullan</dc:creator><pubDate>Fri, 24 Jul 2009 02:07:10 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/mullan/entry/using_stronger_xml_signature_algorithms</guid><description>One of the new features of the XML Signature 1.1 specification, which is currently in draft review, is the addition of stronger cryptographic algorithms to the REQUIRED algorithms, such as the RSAwithSHA256 SignatureMethod algorithm. Additional RECOMMENDED and OPTIONAL algorithms have also been added. See section 6.1 for a complete list of algorithm requirements. 
In JDK 7, you can already use many of these stronger XML Signature algorithms in your Java applications. The following algorithms are newly supported: the RSAwithSHA256, RSAwithSHA384, RSAwithSHA512 signature algorithms and the...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/GtBh6EOYqu0" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/mullan/entry/using_stronger_xml_signature_algorithms</feedburner:origLink></item><item><title>Xuelei Fan:   Document published: SunJSSE FIPS 140 Complient Mode</title><link>http://feedproxy.google.com/~r/javasec/~3/kWMKNwX8GJw/document_published_sunjsse_fips_140</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Sat, 18 Jul 2009 09:27:15 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/document_published_sunjsse_fips_140</guid><description>If you review the online JSSE Reference Guide recently, you would found that in the section, Related Documentation, there is a new link to the just published document FIPS 140 Compliant Mode for SunJSSE&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/kWMKNwX8GJw" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/document_published_sunjsse_fips_140</feedburner:origLink></item><item><title>Xuelei Fan:   Dump PKCS11 Slot Info</title><link>http://feedproxy.google.com/~r/javasec/~3/SMnvMmF9npI/dump_pkcs11_slot_info</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Fri, 17 Jul 2009 23:59:10 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/dump_pkcs11_slot_info</guid><description>Recently, I needed a tool to show the detailed PKCS11 slot information. Cryptoadm is a good utility to display cryptographic provider information for a system, but it does not show me the "ulMaxSessionCount" field, which was important to me at that time, I was eager to know what's the maximum number of sessions that can be opened with the token at one time by a single application. Google did not help this time, so I had to write a simple tool by myself.
Past the code here, maybe one day, it will save me a lot time when I need such a detailed slot info.
Compile the codes with:$gcc cryinfo.c -o...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/SMnvMmF9npI" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/dump_pkcs11_slot_info</feedburner:origLink></item><item><title>Xuelei Fan:   An Aggregate of Feeds: Top Influencers on IT Security</title><link>http://feedproxy.google.com/~r/javasec/~3/gjiCSrnabU8/an_aggregate_of_feeds_top</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Sun, 12 Jul 2009 22:52:11 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/an_aggregate_of_feeds_top</guid><description>An aggregate of feeds,&amp;nbsp;http://feeds.feedburner.com/influenceronsec, from&amp;nbsp;Bruce Schneier, Alan Shimel, and more.&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/gjiCSrnabU8" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/an_aggregate_of_feeds_top</feedburner:origLink></item><item><title>Xuelei Fan:   Enable OCSP checking</title><link>http://feedproxy.google.com/~r/javasec/~3/VAHwLQYrsAs/enable_ocsp_checking</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Wed, 01 Jul 2009 12:55:43 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/enable_ocsp_checking</guid><description>If a certificate is issued with a authority information access extension which indicates the OCSP access method and location, one can enable the default implementation of OCSP checker during building or validating a certification path.
Maybe you need to check your certificate firstly, in the purpose of making sure it includes a OCSP authority information access extension:
#${JAVA_HOME}/bin/keytool -printcert -v -file target.cert
You are expected to see similar lines in the output:
#3: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
AuthorityInfoAccess [
 [accessMethod: 1.3.6.1.5.5.7.48.1
...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/VAHwLQYrsAs" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/enable_ocsp_checking</feedburner:origLink></item><item><title>Xuelei Fan:   An Aggregate of Feeds on Java Security and Networking</title><link>http://feedproxy.google.com/~r/javasec/~3/hxlRZWxjaZ4/an_aggregate_of_feeds_on</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Thu, 25 Jun 2009 01:12:50 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/an_aggregate_of_feeds_on</guid><description>To facilitate keeping track of blogs on java security and networking, I just created an aggregate of feeds, http://feeds.feedburner.com/javasec, and subscribed it to my feed reader, thunderbird. If you are blogging on Java security or networking, please let me know, I would like subscribe to your feed and add it into the aggregator

Of course, you are welcome to subscribe to the aggregated feed, http://feeds.feedburner.com/javasec.&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/hxlRZWxjaZ4" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/an_aggregate_of_feeds_on</feedburner:origLink></item><item><title>Xuelei Fan:   TLS and NIST'S Policy on Hash Functions</title><link>http://feedproxy.google.com/~r/javasec/~3/-cBOaqhd5Bc/tls_and_nist_s_policy</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Wed, 17 Jun 2009 21:15:55 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/tls_and_nist_s_policy</guid><description>NIST'S Policy on Hash Functions
March 15, 2006: The SHA-2 family of hash functions (i.e., SHA-224, SHA-256, SHA-384 and SHA-512) may be used by Federal agencies for all applications using secure hash algorithms. Federal agencies should stop using SHA-1 for digital signatures, digital time stamping and other applications that require collision resistance as soon as practical, and must use the SHA-2 family of hash functions for these applications after 2010. After 2010, Federal agencies may use SHA-1 only for the following applications: hash-based message authentication codes (HMACs); key...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/-cBOaqhd5Bc" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/tls_and_nist_s_policy</feedburner:origLink></item><item><title>Xuelei Fan:   Publicly Accessible LDAP Servers</title><link>http://feedproxy.google.com/~r/javasec/~3/sLE-Nh0Gybg/publicly_accessible_ldap_servers</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Tue, 16 Jun 2009 00:31:35 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/publicly_accessible_ldap_servers</guid><description>In order to learn JNDI, one needs a LDAP server for various purpose. In the JNDI tutorial, there are a few of publicly accessible servers documented[1]. However, the list is too old, and those servers are out of services.

By Google, Found the following two collections[2][3] of public accessible LDAP servers.

And thanks to Ludovic, who commented that FreeLDAP.org is an alternative. FreeLDAP.org[4] is a free LDAP service that you can add yourself entries, and best of all, it provide the service base on SSL and requires individual authentication, which is handy to for the examples that need...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/sLE-Nh0Gybg" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/publicly_accessible_ldap_servers</feedburner:origLink></item><item><title>Xuelei Fan:   JSSE Troubleshooting: Certificates Order in TLS Handshaking</title><link>http://feedproxy.google.com/~r/javasec/~3/8ObymSfVzFU/jsse_troubleshooting_certificates_order_in</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Mon, 15 Jun 2009 14:45:19 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/jsse_troubleshooting_certificates_order_in</guid><description>Issue: 
Failed with a exception: java.security.cert.CertPathValidatorException: subject/issuer name chaining check failed. Example: Test case:  1 // 2 // JSSE Troubleshooting: Disordered Certificate List in TLS Handshaking 3 // 4 import java.net.*; 5 6 public class DisorderedCertificateList { 7 public static void main(String[] Arguments) throws Exception { 8 URL url = new URL("https://myservice.example.com/"); 9 URLConnection connection = url.openConnection(); 10 11 connection.getInputStream().close(); 12 } 13 }  Test environment: 
The HTTPS server, myservice.example.com, is configurated with...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/8ObymSfVzFU" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/jsse_troubleshooting_certificates_order_in</feedburner:origLink></item><item><title>Xuelei Fan:   RSA AlgorithmIdentifier of X.509 Certificate</title><link>http://feedproxy.google.com/~r/javasec/~3/rybXFNFahvY/rsa_algorithmidentifier_of_x_509</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Fri, 12 Jun 2009 00:53:36 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/rsa_algorithmidentifier_of_x_509</guid><description>By far, RSA is a most wide used cryptography algorithm. Both ITU-T
X.509 and IETF PKIX WG define the RSA algorithm identifier, however,
they are not identical.
 

ITU-T X.509[1] defines the algorithm as:  rsa ALGORITHM ::= {
&amp;nbsp;&amp;nbsp;&amp;nbsp; KeySize
&amp;nbsp;&amp;nbsp;&amp;nbsp; IDENTIFIED BY&amp;nbsp; id-ea-rsa
}

KeySize ::= INTEGER

id-ea-rsa OBJECT IDENTIFIER ::= {joint-iso-itu-t(2) ds(5)
 algorithm(8) encryptionAlgorithm(1) rsa(1)} 

While IETF PKIX WG[2] defines the algorithm as:
 rsaPublicKey ALGORITHM-ID ::= { OID rsaEncryption PARMS NULL }

rsaEncryption OBJECT IDENTIFIER ::= {iso(1)...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/rybXFNFahvY" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/rsa_algorithmidentifier_of_x_509</feedburner:origLink></item><item><title>Sean Mullan:   Hope to see you at our Java Security BOF next week at JavaOne</title><link>http://feedproxy.google.com/~r/javasec/~3/AORC7yrEOHY/hope_to_see_you_at</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sean Mullan</dc:creator><pubDate>Fri, 29 May 2009 01:45:15 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/mullan/entry/hope_to_see_you_at</guid><description>Just a reminder that we'll be holding a BOF at this year's JavaOne conference on "New Security Features in JDK™ Releases 6 and 7".&amp;nbsp; It is on Wednesday at 6:45 PM in Gateway 102/103 in the Moscone Center. We plan to have a short presentation on the
latest security features in JDK 6, JDK 7 and JavaFX. Then, we are going to show a demo of the new blacklist mechanism in the just-released JRE 6u14. The remaining time will be for Q&amp;amp;A so please bring
your questions on Java Security as many members of Sun's Java Security team will be on hand to help answer them.&amp;nbsp;&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/AORC7yrEOHY" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/mullan/entry/hope_to_see_you_at</feedburner:origLink></item><item><title>Xuelei Fan:   JSSE Debug Logging With Timestamp</title><link>http://feedproxy.google.com/~r/javasec/~3/adU1_zmE0tI/jsse_debug_logging_with_timestamp</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Fri, 29 May 2009 01:17:16 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/jsse_debug_logging_with_timestamp</guid><description>These days, I was asked about a strange network delay of input/output stream when migrating a TLS protected application to a new platform. The application is built on top of SunJSSE. They enabled debug with option "-Djavax.net.debug=all", however, because there is no timestamp in the debug output, the debug logging was not of much help. 
Is there any way to enable JSSE debug logging with timestamp? &amp;nbsp;Definitely, the answer is YES. &amp;nbsp;It is&amp;nbsp;straightforward. 
Firstly, &amp;nbsp;create a class extends PrintStream,and override all println() methods. I used a static nested class here. ...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/adU1_zmE0tI" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/jsse_debug_logging_with_timestamp</feedburner:origLink></item><item><title>Xuelei Fan:   Understanding Self-Issued Certificate</title><link>http://feedproxy.google.com/~r/javasec/~3/D78KDkPxG0Y/undertanding_self_issued_certificate</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Thu, 28 May 2009 02:10:43 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/undertanding_self_issued_certificate</guid><description>Certificate Types 

RFC5280 categorize certificate into two classes: CA certificates and end entity certificates, and CA certificates are divided into three classes: cross-certificates, self-issued certificates, and self-signed certificates.
 certificate +-&amp;nbsp;CA certificate   +-&amp;nbsp;cross-certificate     +-&amp;nbsp;self-issued certificate     +-&amp;nbsp;self-signed certificat    &amp;nbsp;&amp;nbsp; &amp;nbsp; +-&amp;nbsp;end entity certificate 
  

"Cross-certificates are CA certificates in which the issuer and subject are different entities. Cross-certificates describe a trust relationship between the two...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/D78KDkPxG0Y" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/undertanding_self_issued_certificate</feedburner:origLink></item><item><title>Chris Hegarty:   See you at JavaOne</title><link>http://feedproxy.google.com/~r/javasec/~3/M7EBnZaijW8/see_you_at_javaone</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chegar</dc:creator><pubDate>Mon, 25 May 2009 00:50:36 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/chegar/entry/see_you_at_javaone</guid><description>Well it's that time of year again, JavaOne has come around so quickly. This year I'll be co-presenting on BOF-5087: All Things I/O with JDK™ Release 7 with Alan.


I'm happy to have the opportunity to tell you about what we've been up to in the networking area, as well as give an update on the state of SCTP in the JDK. I've also been prototyping a cool way of leveraging SCTP multi-homing without having to change your app. This BOF is a great opportunity to ask questions and discuss any aspects of file or networking I/O. Please come along.&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/M7EBnZaijW8" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/chegar/entry/see_you_at_javaone</feedburner:origLink></item><item><title>Xuelei Fan:   SunJSSE and TLSAES</title><link>http://feedproxy.google.com/~r/javasec/~3/iE2SnZx5wRI/sunjsse_and_tlsaes</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Sat, 23 May 2009 00:16:53 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/sunjsse_and_tlsaes</guid><description>TLSAES&amp;nbsp;defines AES ciphersuites for TLS, and from TLS version 1.1, the AES cipher suites are merged in TLS specification.&amp;nbsp;The AES supports key lengths of 128, 192 and 256 bits. &amp;nbsp;However, the TLSAES specification only defines ciphersuites for 128-bits and 256-bits keys. 
  
In Java security context, there is a important concept, "jurisdiction policy".&amp;nbsp;The JCA framework includes an ability to enforce restrictions regarding the cryptographic algorithms and maximum cryptographic strengths available to applets/applications in different jurisdiction contexts (locations). Any...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/iE2SnZx5wRI" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/sunjsse_and_tlsaes</feedburner:origLink></item><item><title>Xuelei Fan:   FIPS 140 Compliant Mode for SunJSSE</title><link>http://feedproxy.google.com/~r/javasec/~3/huUvThpvIzU/fips_140_compliant_mode_for</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Fri, 22 May 2009 11:06:02 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/fips_140_compliant_mode_for</guid><description>In the&amp;nbsp;Java™ 6 Security Enhancements, it says that "The SunJSSE provider now supports an experimental FIPS 140 compliant mode. &amp;nbsp;When enabled and used in combination with the SunPKCS11 provider and an appropriate FIPS 140 certified PKCS#11 token, SunJSSE is FIPS 140 compliant." &amp;nbsp;Except that, we cannot find any more document on how to enable FIPS mode and how the FIPS mode works with SunJSSE. Normally, developers could a few hints from Andreas blog,.&amp;nbsp;The Java PKCS#11 Provider and NSS, althought it is far from enough to understand the FIPS mode of SunJSSE.&amp;nbsp;The following...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/huUvThpvIzU" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/fips_140_compliant_mode_for</feedburner:origLink></item><item><title>Chris Hegarty:   SCTP in Java</title><link>http://feedproxy.google.com/~r/javasec/~3/03jhMrvQQ7A/sctp_in_java</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chegar</dc:creator><pubDate>Tue, 19 May 2009 23:25:33 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/chegar/entry/sctp_in_java</guid><description>Providing support for Stream Control Transport Protocol (SCTP) in
Java has been approved as one of the features
for JDK7, and the work of defining the API and reference
implementation was done through the SCTP
OpenJDK project. This work was integrated into JDK7
Milestone 3 and is
available in all future promotions. 
Brief Introduction to SCTP

The Stream Control Transport Protocol (SCTP) is a reliable,
message-oriented, transport protocol existing at an equivalent level
with UDP (User Datagram Protocol) and TCP (Transmission Control
Protocol). SCTP is session oriented and an association...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/03jhMrvQQ7A" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/chegar/entry/sctp_in_java</feedburner:origLink></item><item><title>Xuelei Fan:   Please remove the unsafe dependence on Permission.toString()</title><link>http://feedproxy.google.com/~r/javasec/~3/3BbwoW46pZY/please_remove_the_dependence_of</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Tue, 12 May 2009 17:31:17 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/please_remove_the_dependence_of</guid><description>Recently,
we made a correction on the implement of
java.security.Permission.toString(). The specification says, "Returns a
string describing this Permission. The convention is to specify the
class name, the permission name, and the actions in the following
format: '("ClassName" "name" "actions")'."[1] That is, the
specification requires&amp;nbsp;all components, ClassName, name, and actions, to
be enclosed in double quotes, but JDK implementation of this method
ignores this requirement, which returns string without double quotes.
It seems that double quotes make sense, to differentiate...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/3BbwoW46pZY" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/please_remove_the_dependence_of</feedburner:origLink></item><item><title>Max Wang:   Subscribe to a mail list and start replying immediately</title><link>http://feedproxy.google.com/~r/javasec/~3/dVGxABlqEiA/subscribe_to_a_mail_list</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Fri, 24 Apr 2009 23:31:53 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/subscribe_to_a_mail_list</guid><description>Sometimes I browse through archives of a mail list and find some topics very interesting. I subscribe it, but only new messages come to my mail client, and those topics I found interesting initially won't appear anymore. How I wish I can reply to those topics.



If it's also hosted on Google Groups, that's great. Just reply to it there. If you don't want to keep using your Google Account in the discussion. Reply with some nonsense in Google Groups, and then reply with your real identity after that nonsense reaches your mail box.



If the list is available on gmane.org, you may be able to...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/dVGxABlqEiA" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/subscribe_to_a_mail_list</feedburner:origLink></item><item><title>Sean Mullan:   Come to our Java Security BOF at JavaOne 2009</title><link>http://feedproxy.google.com/~r/javasec/~3/igLWiO3O-mg/come_to_our_java_security</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sean Mullan</dc:creator><pubDate>Fri, 24 Apr 2009 01:19:08 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/mullan/entry/come_to_our_java_security</guid><description>We'll be holding a BOF at this year's JavaOne conference on "New Security Features in JDK™ Releases 6 and 7". This is sure to be an interesting BOF, as we'll go over all of the latest security features that we have added to JDK 6 and new ones that are targeted for JDK 7. We also plan to show a demo of some of the features. There should be plenty of time for Q&amp;amp;A so please bring your questions on Java Security as many members of Sun's Java Security team will be on hand to help answer them.&amp;nbsp; 
I'll add more details as we get closer to JavaOne.&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/igLWiO3O-mg" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/mullan/entry/come_to_our_java_security</feedburner:origLink></item><item><title>Max Wang:   Fedora 10</title><link>http://feedproxy.google.com/~r/javasec/~3/yOo4chwZUik/fedora_10</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Tue, 21 Apr 2009 18:03:08 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/fedora_10</guid><description>Trying to install it again. Last time (probably F8) it does not support GUI login as a NIS user. GDM hangs.



Hope it's fine now. Will see if it's a better system building OpenJDK.



Update: NIS account can login, no +::: lines needed. However, system goes unstable when trying to change network setting to manual IP. Re grub-install and now back in Ubuntu.



Anyway, OS is there now, might try again someday.&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/yOo4chwZUik" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/fedora_10</feedburner:origLink></item><item><title>Max Wang:   Several Enhancements for JarSigner</title><link>http://feedproxy.google.com/~r/javasec/~3/ODGjqO7WpgI/several_enhancements_for_jarsigner</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Sun, 19 Apr 2009 11:55:31 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/several_enhancements_for_jarsigner</guid><description>There're several enhancements to the jarsigner tool in OpenJDK lately.



First, jarsigner accepts a new option -certchain file to use a certificate chain in an external file. People can using PKCS #11 tokens to store their private keys. Some of these tokens are so small that there's no place to store the certificate chain inside it. Although you can access it with a KeyStore.getInstance("pkcs11"), the getCertificateChain() method returns nothing. Now you can use jarsigner with this kind of tokens, using the token as the keystore, but point your certchain to another file that contains the...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/ODGjqO7WpgI" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/several_enhancements_for_jarsigner</feedburner:origLink></item><item><title>Brad Wetmore:   Would 6 units of band class qualify me for a free JavaOne 2009 pass?</title><link>http://feedproxy.google.com/~r/javasec/~3/ZFKa0sLF6zU/would_6_units_of_band</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Wetmore</dc:creator><pubDate>Fri, 17 Apr 2009 13:23:45 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wetmore/entry/would_6_units_of_band</guid><description>The worst thing about graduating and getting a job in the real world is that all the cool benefits dried up.&amp;nbsp; Student rates on travel, movie passes, food...etc. 
 I just noticed an offer on the J1 web site that appears to allow students (6 units or more) to get a free, FULL JavaOne 2009 conference pass.&amp;nbsp; Even as a Sun employee, I only get a limited pass.&amp;nbsp; Which got me thinking:&amp;nbsp; I'm currently taking a 1 unit music performance class at a local community college.&amp;nbsp; If I sign up for 5 more of these classes, would that qualify? 
Hm...I should check with my manager...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/ZFKa0sLF6zU" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wetmore/entry/would_6_units_of_band</feedburner:origLink></item><item><title>Sean Mullan:   New API to indicate the reason a certificate chain was invalid</title><link>http://feedproxy.google.com/~r/javasec/~3/AFRbwEnW5IM/new_api_to_indicate_the</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sean Mullan</dc:creator><pubDate>Fri, 03 Apr 2009 04:39:42 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/mullan/entry/new_api_to_indicate_the</guid><description>In JDK 7, we have added a new method (getReason) to the java.security.cert.CertPathValidatorException class which returns an object indicating the reason a certificate chain, or CertPath, is invalid. Previously, there was no standard mechanism to determine the reason of failure, and applications had to depend on the exception message or the cause which could vary based on the underlying service provider implementation. 
The getReason method returns an instance of CertPathValidatorException.Reason, which is an interface. There are 2 subclasses of this interface. One is BasicReason which is an...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/AFRbwEnW5IM" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/mullan/entry/new_api_to_indicate_the</feedburner:origLink></item><item><title>Sean Mullan:   New CertificateRevokedException class in JDK 7</title><link>http://feedproxy.google.com/~r/javasec/~3/4AW51KmkoQc/new_certificaterevokedexception_class_in_jdk</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sean Mullan</dc:creator><pubDate>Fri, 27 Mar 2009 01:44:19 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/mullan/entry/new_certificaterevokedexception_class_in_jdk</guid><description>There is a new CertificateRevocationException class in JDK 7 in the java.security.cert package that indicates that an X.509 certificate is revoked and also allows you to determine additional information such as the reason the certificate has been revoked and when it was revoked.&amp;nbsp; The getRevocationReason method returns a CRLReason, which is a new enum class that enumerates the different reasons an X.509 certificate can be revoked, such as compromise of the private key. In JDK 7, The Sun PKIX CertPathValidator service provider implementation has been enhanced to throw this exception....&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/4AW51KmkoQc" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/mullan/entry/new_certificaterevokedexception_class_in_jdk</feedburner:origLink></item><item><title>Sean Mullan:   Greetings</title><link>http://feedproxy.google.com/~r/javasec/~3/6jviede-IS0/greetings</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sean Mullan</dc:creator><pubDate>Fri, 20 Mar 2009 05:49:12 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/mullan/entry/greetings</guid><description>Hello everyone. Although I have been with Sun for over 10 years, this is my first blog entry at blogs.sun.com. I already have a blog over at java.net (http://weblogs.java.net/blog/mullan/), but for now I will be posting new entries right here at blogs.sun.com. I may still update my blog at java.net from time to time, or figure out a way to cross-post my entries. 
A little about myself. I work on the Java Security Team and have spent almost 10 years working on the Java SE security technology. I was specification lead of JSR 55 and co-specification lead of JSR 105, both successful APIs that...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/6jviede-IS0" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/mullan/entry/greetings</feedburner:origLink></item><item><title>Xuelei Fan:   Patch Solaris system from the Command-Line Interface</title><link>http://feedproxy.google.com/~r/javasec/~3/5GW9sEBP-0g/registrater_solaris_from_the_command</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Tue, 24 Feb 2009 23:56:44 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/registrater_solaris_from_the_command</guid><description>It is midnight, and I have to get my solaris platform patched in order to build a OpenJDK project. I'm working remotely with no-gui terminal, so I have to find a command line approaches. Thanks to SunSolve, I find the way at last. Bookmark them here for reference.&amp;nbsp;Here is a pretty detailed guide[1] on how to register my solaris system, and Here is a short summary on the tools used to patch the system[2], and there is a detailed one[3].&amp;nbsp; 
[1]:&amp;nbsp;http://sunsolve.sun.com/search/document.do?assetkey=1-9-82688-1&amp;nbsp;...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/5GW9sEBP-0g" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/registrater_solaris_from_the_command</feedburner:origLink></item><item><title>Max Wang:   Another new keytool enhancement: -printcert -sslserver</title><link>http://feedproxy.google.com/~r/javasec/~3/gwjFwF4CT20/another_old_new_keytool_enhancement</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Sun, 22 Feb 2009 15:40:51 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/another_old_new_keytool_enhancement</guid><description>Andreas has written a blog entry on retrieving certificates from an SSL server. Whenever I see someone asking this question on the Java forum I point the user to this entry. Now it's time for this function to be included in keytool.



Call keytool -printcert -sslserver sun.com to see what's shown.



During the implementation of this feature, there are some discussions on how the function should be called. Two topics are most interesting:



What's the function name? At first, the plan is to add a new function to import the certificate into a keystore. The command will look like "-importcert...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/gwjFwF4CT20" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/another_old_new_keytool_enhancement</feedburner:origLink></item><item><title>Max Wang:   keytool enhancements</title><link>http://feedproxy.google.com/~r/javasec/~3/B1dMFvOgy3Y/keytool_enhancements</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Sun, 22 Feb 2009 12:59:12 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/keytool_enhancements</guid><description>There're two enhancements made to keytool today (the doc has not been updated, it's still for JDK 6):
new commands and options
We have 2 new commands: -gencert, -printcertreq and 1 new option -ext. Read the RFE descriptions.



-printcertreq is simply for printing the content of a certificate request. It behaves like the -printcert command, reading a PKCS #10 format cert req from a file or stdin, and does not need a keystore to run with.



-gencert is a big enhancement, which means you can setup a tiny CA now with keytool. The command reads a certificate request from a file (specified by...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/B1dMFvOgy3Y" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/keytool_enhancements</feedburner:origLink></item><item><title>Brad Wetmore:   Extra! Extra! Read all about it! OpenJDK Bugzilla Goes Live!</title><link>http://feedproxy.google.com/~r/javasec/~3/FKHY83Knbdo/extra_extra_read_all_about</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Wetmore</dc:creator><pubDate>Fri, 06 Feb 2009 12:50:04 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wetmore/entry/extra_extra_read_all_about</guid><description>News at 11...or whenever the moderator on "announce at openjdk dot java dot net" approves my message...or just go to:  
http://openjdk.java.net/groups/web/bugzilla.html&amp;nbsp;  
  
(Apologies to my younger or international readers if the title of this entry didn't make any sense.)&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/FKHY83Knbdo" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wetmore/entry/extra_extra_read_all_about</feedburner:origLink></item><item><title>Brad Wetmore:   Update on the OpenJDK Bugzilla instance.</title><link>http://feedproxy.google.com/~r/javasec/~3/zPnZxyMjvA8/update_on_the_openjdk_bugzilla</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Wetmore</dc:creator><pubDate>Sun, 01 Feb 2009 13:42:26 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wetmore/entry/update_on_the_openjdk_bugzilla</guid><description>I've recently been leading the effort to get our OpenJDK Bugzilla instance in place, and just wanted to let folks know that we're pretty close. 
I took some time over the last couple days to take a snapshot of what we have and what's planned for the near and somewhat longer future.&amp;nbsp; The short story is that we'll begin by tracking contributions from OpenJDK developers who do not have push rights to the JDK 6 and 7 forests.&amp;nbsp; The next phase will expand the system to track most if not all of the OpenJDK projects under development. 
The longer story is now available on the OpenJDK...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/zPnZxyMjvA8" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wetmore/entry/update_on_the_openjdk_bugzilla</feedburner:origLink></item><item><title>Max Wang:   Small Enhancements to HGrev</title><link>http://feedproxy.google.com/~r/javasec/~3/Oo-EXT29ZPY/small_enhancements_to_hgrev</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Tue, 20 Jan 2009 17:10:45 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/small_enhancements_to_hgrev</guid><description>I've enhanced http://hgrev.appspot.com a little. Now the patch view has links to previous and new codes in raw form, so that you can download it directly to try on your own computer.&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/Oo-EXT29ZPY" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/small_enhancements_to_hgrev</feedburner:origLink></item><item><title>Max Wang:   Who Moved My krb5.ini?</title><link>http://feedproxy.google.com/~r/javasec/~3/qRHma_zdbws/who_moved_my_krb5_ini</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Sun, 18 Jan 2009 18:59:47 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/who_moved_my_krb5_ini</guid><description>Java Kerberos 5, on Windows, looks for a config file named krb5.ini in the Windows directory, and a Windows directory is defined as the return value of the Win32 API GetWindowsDirectory(), which should normally return something like C:&amp;#92;Windows.



But, since Windows Server 2003, something has changed. The Terminal Services Programming Guidelines has these words: In a Terminal Services environment, the Windows directory is guaranteed to be private for each user.



So this means if your (post Windows 2003) system has Terminal Services turned on, Java would look for krb5.ini inside...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/qRHma_zdbws" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/who_moved_my_krb5_ini</feedburner:origLink></item><item><title>Max Wang:   NetBeans C++ is Cool</title><link>http://feedproxy.google.com/~r/javasec/~3/_HBOz32xWng/netbeans_c_is_cool</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Thu, 15 Jan 2009 17:04:08 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/netbeans_c_is_cool</guid><description>Although I use NetBeans a lot writing Java, I've never really tried its C/C++ Pack before. Today I need to read some MIT Kerberos codes. There's a long time I haven't worked heavily on C so I find it quite difficult to find out which function does what and where it's defined. And then, I think of NetBeans, it's very good at parsing Java codes and give you multiple ways to navigate through the method calls and field definitions. How about trying it for C?



So I fire up NetBeans and go download the C/C++ pack. It's a huge 5MB module that takes care of projects, editing, debugging all in one...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/_HBOz32xWng" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/netbeans_c_is_cool</feedburner:origLink></item><item><title>Max Wang:   Picasa for Mac</title><link>http://feedproxy.google.com/~r/javasec/~3/JCnHlqmQgJU/picasa_for_mac</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Wed, 07 Jan 2009 16:23:18 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/picasa_for_mac</guid><description>I'm happy to become a Picasa user again. For the last two years, I use Finder and Preview to take care of all my photos. It's a very difficult job － I leave quite some duplicates here and there, and I dare not edit photos except rotating them. I hate iPhoto, I don't want the files be moved to somewhere else, and I feel bad when I don't know what it's doing and how it stores things.



Now I can do the so-called non-destructive edit again. Picasa for Mac still recognizes all previous edit made in Windows, the Picasa.ini file I mean. It would update the file if you make more edit. When there's...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/JCnHlqmQgJU" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/picasa_for_mac</feedburner:origLink></item><item><title>Max Wang:   OpenSolaris on Bare Metal</title><link>http://feedproxy.google.com/~r/javasec/~3/Y1uNB6amw1Y/opensolaris_on_bare_metal</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Tue, 06 Jan 2009 13:50:45 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/opensolaris_on_bare_metal</guid><description>Finally I decide to install OpenSolaris on the bare metal, and probably use it as a nightly build machine.

Create a USB installer using usbcopy
Boot from this USB disk and install
Reboot, disable network/physical:nwam, enable multicast and network/physical:default, call sys-unconfig
Reconfigure the machine
Reboot again

I hadn't enabled/disabled the services first time when I run sys-unconfig, and the machine cannot reboot complaining avahi-bridge-dsd cannot start. Fortunately I can login to single user mode and do that again.



I'm learning how to give more privileges to my NIS user...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/Y1uNB6amw1Y" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/opensolaris_on_bare_metal</feedburner:origLink></item><item><title>Xuelei Fan:   Understanding TLS protocol -- Client Certificate URLs</title><link>http://feedproxy.google.com/~r/javasec/~3/VpYlXsySaa0/understanding_tls_protocol_client_certificate</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Mon, 29 Dec 2008 16:21:57 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_client_certificate</guid><description>For better understanding TLS protocol extensions, I draw a few sequence diagrams of TLS handshaking with extension, and marked the differences from the normal handshaking processes. Share them now.&amp;nbsp;For legible image, please open the following image in new page or download the raw image from&amp;nbsp;here. 
&amp;nbsp;&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/VpYlXsySaa0" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_client_certificate</feedburner:origLink></item><item><title>Xuelei Fan:   Understanding TLS protocol -- Certificate Status Request</title><link>http://feedproxy.google.com/~r/javasec/~3/sMirZtZeYEM/understanding_tls_protocol_certificate_status</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Mon, 29 Dec 2008 16:07:24 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_certificate_status</guid><description>For better understanding TLS protocol extensions, I draw a few sequence diagrams of TLS handshaking with extension, and marked the differences from the normal handshaking processes. Share them now.&amp;nbsp;For legible image, please open the following image in new page or download the raw image from&amp;nbsp;here. 
&amp;nbsp;&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/sMirZtZeYEM" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_certificate_status</feedburner:origLink></item><item><title>Xuelei Fan:   Understanding TLS protocol -- Maximum Fragment Length Negotiation</title><link>http://feedproxy.google.com/~r/javasec/~3/DzrxZ26hOHE/understanding_tls_protocol_maximum_fragment</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Mon, 29 Dec 2008 16:02:24 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_maximum_fragment</guid><description>For better understanding TLS protocol extensions, I draw a few sequence diagrams of TLS handshaking with extension, and marked the differences from the normal handshaking processes. Share them now.&amp;nbsp;For legible image, please open the following image in new page or download the raw image from&amp;nbsp;here. 
&amp;nbsp;&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/DzrxZ26hOHE" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_maximum_fragment</feedburner:origLink></item><item><title>Xuelei Fan:   Understanding TLS protocol -- Truncated HMAC</title><link>http://feedproxy.google.com/~r/javasec/~3/PpY5jT_kfHE/understanding_tls_protocol_truncated_hmac</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Mon, 29 Dec 2008 15:56:19 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_truncated_hmac</guid><description>For better understanding TLS protocol extensions, I draw a few sequence diagrams of TLS handshaking with extension, and marked the differences from the normal handshaking processes. Share them now.&amp;nbsp;For legible image, please open the following image in new page or download the raw image from&amp;nbsp;here. 
&amp;nbsp;&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/PpY5jT_kfHE" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_truncated_hmac</feedburner:origLink></item><item><title>Xuelei Fan:   Understanding TLS protocol -- Trusted CA Indication</title><link>http://feedproxy.google.com/~r/javasec/~3/u6TEycYyuLw/understanding_tls_protocol_trusted_ca</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Mon, 29 Dec 2008 15:52:51 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_trusted_ca</guid><description>For better understanding TLS protocol extensions, I draw a few sequence diagrams of TLS handshaking with extension, and marked the differences from the normal handshaking processes. Share them now.&amp;nbsp;For legible image, please open the following image in new page or download the raw image from&amp;nbsp;here. 
&amp;nbsp;&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/u6TEycYyuLw" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_trusted_ca</feedburner:origLink></item><item><title>Xuelei Fan:   Understanding TLS protocol -- Server Name Indication</title><link>http://feedproxy.google.com/~r/javasec/~3/8K92DiZizkI/understanding_tls_protocol_server_name</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Mon, 29 Dec 2008 15:42:47 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_server_name</guid><description>For better understanding TLS protocol extensions, I draw a few sequence diagrams of TLS handshaking with extension, and marked the differences from the normal handshaking processes. Share them now.&amp;nbsp;For legible image, please open the following image in new page or download the raw image from&amp;nbsp;here. 
&amp;nbsp;&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/8K92DiZizkI" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_server_name</feedburner:origLink></item><item><title>Brad Wetmore:   You can teach a somewhat older dog new tricks-OpenSolaris 2008.11: Wow!</title><link>http://feedproxy.google.com/~r/javasec/~3/w7lT_rRbefw/you_can_teach_a_somewhat</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Wetmore</dc:creator><pubDate>Thu, 18 Dec 2008 13:30:16 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wetmore/entry/you_can_teach_a_somewhat</guid><description>Way back in grad school (early 90's), I was called in to assist in the investigation of an internet porn exchange ring.&amp;nbsp; The ring was using some unsecured FTP servers belonging to our state's government.&amp;nbsp; Our team finished our initial assessment and called in the State Police to report our findings.&amp;nbsp; I will never forget that day as long as I live.&amp;nbsp; I said, "Yes, you've got a problem" and brought up one of the tamer images.&amp;nbsp; This career cop was two years away from retirement, and he just rolled his eyes and said "I'm too old for this, I don't get this new technology."...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/w7lT_rRbefw" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wetmore/entry/you_can_teach_a_somewhat</feedburner:origLink></item><item><title>Max Wang:   mechListMIC in SPNEGO</title><link>http://feedproxy.google.com/~r/javasec/~3/jaSiLvZlXI4/mechlistmic_in_spnego</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Tue, 16 Dec 2008 11:37:36 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/mechlistmic_in_spnego</guid><description>I try hard to understand when should mechListMIC be generated in SPNEGO, but still find the specification (RFC 4178) confusing. I'd like to interpret it this way:

 If the chosen mech is the first one in the list, don't bother to create it
 Generate the MIC whenever you think you can do it, i.e. mech's isEstablished() is true
 Response to a MIC whenever you receive one

In case you believe the incoming token should have the MIC but it hasn't, if it's already marked COMPLETE, you go COMPLETE also. Otherwise, it may be expecting a MIC from you, either create the MIC and send back, or send back...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/jaSiLvZlXI4" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/mechlistmic_in_spnego</feedburner:origLink></item><item><title>Brad Wetmore:   Consolidation of the JSN and TL gates.</title><link>http://feedproxy.google.com/~r/javasec/~3/BCwWshCN-x4/consolidation_of_the_jsn_and</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Wetmore</dc:creator><pubDate>Wed, 12 Nov 2008 07:54:40 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wetmore/entry/consolidation_of_the_jsn_and</guid><description>For the last 4 years, I've been the "Gatekeeper" for the Java Security and Network (JSN) team.&amp;nbsp; Gatekeepers are those under-appreciated but highly necessary folks who make sure that new changes work, and play nicely with what's already there.&amp;nbsp; We're only as good as our test cases, but not all developers are as diligent about running everything that's available.
  
A month ago, I was asked to take on a project to support the OpenJDK project.&amp;nbsp; In order to free up time, we decided to decommission the JSN gate, and transition the JSN developers to the Tools and Libraries (TL) gate...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/BCwWshCN-x4" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wetmore/entry/consolidation_of_the_jsn_and</feedburner:origLink></item><item><title>Xuelei Fan:   Understanding TLS protocol -- connection states</title><link>http://feedproxy.google.com/~r/javasec/~3/bZ1eXUP_I50/understanding_tls_protocol_connection_states</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Mon, 22 Sep 2008 20:33:30 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_connection_states</guid><description>The TLS connection states diagram, which is not a standard UML state diagram, but I think it help to illustrate the connection state clearly.&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/bZ1eXUP_I50" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_connection_states</feedburner:origLink></item><item><title>Xuelei Fan:   Understanding TLS protocol -- handshaking renew</title><link>http://feedproxy.google.com/~r/javasec/~3/BVv7D2RKejk/understanding_tls_protocol_handshaking_renew</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Mon, 22 Sep 2008 20:18:48 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_handshaking_renew</guid><description>For better understanding TLS protocol, I draw a few sequence diagrams of TLS handshaking, along with the connection states. Share them now.&amp;nbsp;This is the sequence diagram of&amp;nbsp;handshaking renew, for legible image, please open the following image in new page or download it from here. 
&amp;nbsp;&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/BVv7D2RKejk" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_handshaking_renew</feedburner:origLink></item><item><title>Xuelei Fan:   Understanding TLS protocol -- handshaking resume</title><link>http://feedproxy.google.com/~r/javasec/~3/VeVDQBGqvc0/understanding_tls_protocol_handshaking_resume</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Mon, 22 Sep 2008 20:18:37 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_handshaking_resume</guid><description>For better understanding TLS protocol, I draw a few sequence diagrams of TLS handshaking, along with the connection states. Share them now. This is the sequence diagram of handshaking resume,&amp;nbsp;for legible image, please open the following image in new page or download it from here. 
&amp;nbsp;&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/VeVDQBGqvc0" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_handshaking_resume</feedburner:origLink></item><item><title>Xuelei Fan:   Understanding TLS protocol -- handshaking kickoff</title><link>http://feedproxy.google.com/~r/javasec/~3/BT4fiE8K80I/understanding_tls_protocol_1</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Mon, 22 Sep 2008 20:18:25 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_1</guid><description>For better understanding TLS protocol, I draw a few sequence diagrams of TLS handshaking, along with the connection states. Share them now. This is the sequence diagram of&amp;nbsp;handshaking kickoff,&amp;nbsp;for legible image, please open the following image in new page or download it from&amp;nbsp;here. 
&amp;nbsp;&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/BT4fiE8K80I" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/understanding_tls_protocol_1</feedburner:origLink></item><item><title>Max Wang:   Mark Bristow, Today's Gold Medalist</title><link>http://feedproxy.google.com/~r/javasec/~3/oSLwq-1yxeU/mark_bristow</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Mon, 08 Sep 2008 19:08:15 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/mark_bristow</guid><description>Silicon Valley? That's Sun Microsystems.



Congratulations!&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/oSLwq-1yxeU" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/mark_bristow</feedburner:origLink></item><item><title>Max Wang:   LiveCD of OpenSolaris in VMWare</title><link>http://feedproxy.google.com/~r/javasec/~3/EEIXimbxgLs/livecd_of_opensolaris_in_vmware</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Mon, 25 Aug 2008 13:51:22 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/livecd_of_opensolaris_in_vmware</guid><description>Normally I don't like running an OS as a LiveCD on a bare metal machine because accessing CD-ROM is too slow and makes very big noises. However as a VMWare guest, since the CD-ROM is in fact an ISO file on the hard disk, I guess the speed should be quite fast, I'm quite happy to only run it on the LiveCD.



So I creates a new Virtual machine with two CD-ROM drives, put the LiveCD in the 1st one and the VMTools into the 2nd. When the system CD boots up, I will be able to install VMTools from the 2nd CD.



This works quite fine for Ubuntu and the VMTools is installed correctly. But for...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/EEIXimbxgLs" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/livecd_of_opensolaris_in_vmware</feedburner:origLink></item><item><title>Max Wang:   F9 (Compile) for NetBeans Missing</title><link>http://feedproxy.google.com/~r/javasec/~3/Fr7bymuwLyo/f9_compile_for_netbeans_missing</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Sun, 03 Aug 2008 14:28:30 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/f9_compile_for_netbeans_missing</guid><description>Just downloaded the latest DEV version of NetBeans, haven't done it for several weeks.



One thing that confuses me is that F9 seems does not work for individual files in a Java project anymore. Pressing F9 has no impact, the edited Java file still shows an asterisk sign in the editor pane header, still dirty, not even saved. Looking at the right mouse menu of the file, and the compile item is grayed not completely.



Strange, isn't it? Then I suddenly realized this might be because of the newly introduced compile-on-save feature. I try to add some runtime error into my Java file and save...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/Fr7bymuwLyo" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/f9_compile_for_netbeans_missing</feedburner:origLink></item><item><title>Max Wang:   my webrev experiment: public, interactive and easy</title><link>http://feedproxy.google.com/~r/javasec/~3/ECj100aA4Dc/my_webrev_experiment_public_interactive</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Wed, 11 Jun 2008 14:27:10 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/my_webrev_experiment_public_interactive</guid><description>Inside Sun, we use webrev to do code reviews, you can see an example here.



Well, there're several reasons I don't like webrev very much:

It's a pile of static files, you must first create them, and upload them to a public website (possibly one by one).
It used to be a nice archive of what you've done, but now in Mercurial we already have changesets.
It includes no interactive review process 
OK, only the first reason is real. I just cannot resist the temptation to create a list.



Recently I've done some experiments on creating a new review style which is meant to be:

Public, the patch...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/ECj100aA4Dc" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/my_webrev_experiment_public_interactive</feedburner:origLink></item><item><title>Max Wang:   location.replace</title><link>http://feedproxy.google.com/~r/javasec/~3/VKTMbNRRH8M/location_replace</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Wed, 04 Jun 2008 11:46:50 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/location_replace</guid><description>Just write a long web page using location.replace to move around to different corners of it. Find out these incompatibilities between different browsers:

Firefox is fine
Opera and WebKit save a history item for each replace call, which I don't like
IE is not aware of javascript-generated anchors&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/VKTMbNRRH8M" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/location_replace</feedburner:origLink></item><item><title>Brad Wetmore:   He Is He, Don Quixote: The Lord of La Mancha!</title><link>http://feedproxy.google.com/~r/javasec/~3/jPATyI1mHl8/he_is_he_don_quixote</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Wetmore</dc:creator><pubDate>Tue, 03 Jun 2008 09:02:35 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wetmore/entry/he_is_he_don_quixote</guid><description>Folks have been asking what I'm up to outside of work.&amp;nbsp; Way too many things for one blog entry, so I'll focus on the most recent.
 
As you may know, one of the things I'm quite passionate about is music and performance. I'd started with church choirs, but I'd say I got really passionate about music in 5th grade, when I had to choose an instrument for the school band.&amp;nbsp; I can't believe how practical I was back then:&amp;nbsp; I asked myself what instrument(s) will allow me to do the most types of music.&amp;nbsp; (pretty impressive for a 5th grader, no?)&amp;nbsp; The answer was obvious:&amp;nbsp;...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/jPATyI1mHl8" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wetmore/entry/he_is_he_don_quixote</feedburner:origLink></item><item><title>Max Wang:   SSH with Kerberos? No!</title><link>http://feedproxy.google.com/~r/javasec/~3/y0GGopx-S_k/ssh_with_kerberos_no</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Sun, 25 May 2008 20:31:47 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/ssh_with_kerberos_no</guid><description>In the last few days, my SSH connection from home to office is very very slow. However, when it's connected, the speed is not so bad. After some -vvv debug, it seems the SSH client waste a lot of time before showing a line "Cannot resolve network address for KDC in requested realm". What? SSH is using Kerberos? That's bad.



Well I have done some Kerberos programming jobs recently on this computer, but I never meant to tell SSH to use it. Finally I add these 2 lines into ~/.ssh/config, and now it's much faster.

Host *
GSSAPIKeyExchange no&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/y0GGopx-S_k" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/ssh_with_kerberos_no</feedburner:origLink></item><item><title>Max Wang:   NetBeans with SoyLatte: The Missing Menu Items</title><link>http://feedproxy.google.com/~r/javasec/~3/De9DOtxJltE/netbeans_with_soylatte</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Fri, 23 May 2008 18:20:16 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/netbeans_with_soylatte</guid><description>If you also use SoyLatte to run NetBeans, you'll notice that there's no menu items for Exit, About and Options. Normally, Mac programs put them into the application name menu. With SoyLatte, NetBeans runs in the X11 window environment, where the application menu belongs to X11.app.



This is how I add them, the easiest way:

Open the Tools | Plugins dialog, select the Setting tab, and click "Proxy Settings"
Options dialog appears, click "Advanced Options" at the lower left corner
Expand "IDE Configuration | Look and Feel | Actions", locate "System | Exit", "Help | About" and "Window...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/De9DOtxJltE" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/netbeans_with_soylatte</feedburner:origLink></item><item><title>Max Wang:   cronjobs on Ubuntu</title><link>http://feedproxy.google.com/~r/javasec/~3/_IvuTo0L99Y/cronjobs_on_ubuntu</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Thu, 22 May 2008 13:18:31 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/cronjobs_on_ubuntu</guid><description>There's some network problems in the office, and my cron jobs are interrupted. In syslog, after the last successful CRON call of my job (at May 21 21:58:01), I see one hour of "CRON[4428]: User not known to the underlying authentication module", and after that my cron jobs never appears in the log anymore. That's about 36 hours ago. Yesterday I've been working using this account on this machine for the whole day, so there's no authentication problem anymore. It seems cron just never resumed from the failure.



Have to run "sudo /etc/init.d/cron restart".



BTW, the account is a NIS one. The...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/_IvuTo0L99Y" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/cronjobs_on_ubuntu</feedburner:origLink></item><item><title>Max Wang:   Edit HTML in Google Docs</title><link>http://feedproxy.google.com/~r/javasec/~3/x6sIfEaOKzM/edit_html_in_google_docs</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Thu, 22 May 2008 12:29:24 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/edit_html_in_google_docs</guid><description>Just tried "Edit HTML..." of Google Docs. Ouch! I haven't seen this fat ugly HTML for a long time ever since I saved as HTML in Word 97 ten years ago.&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/x6sIfEaOKzM" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/edit_html_in_google_docs</feedburner:origLink></item><item><title>Max Wang:   hg clone on NFS</title><link>http://feedproxy.google.com/~r/javasec/~3/K838JN1UUpY/hg_clone_on_nfs</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Wed, 21 May 2008 16:37:12 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/hg_clone_on_nfs</guid><description>"hg clone" is very very fast if the target volume is a local disk. If it's on NFS, even if it's on a very very fast LAN, the speed degrades to less than 1/10. I guess it's because hg does huge amount of tiny writes.&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/K838JN1UUpY" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/hg_clone_on_nfs</feedburner:origLink></item><item><title>Max Wang:   JSR 277 on modularity: JAM Hell?</title><link>http://feedproxy.google.com/~r/javasec/~3/YgJAgFzkeqU/jsr_277_on_modularity_jam</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Mon, 19 May 2008 16:56:39 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/jsr_277_on_modularity_jam</guid><description>I'm not an optimist, so when I read the JavaOne TS-6185 paper on JSR 277 and see the line "No more JAR hell", I simply ask myself: Will there be JAM hell? Soon?



Real computer scientists out there, please prove that either "DLL Hell" or "Assembly Hell" or "JAR Hell" is simply inevitable, every solution that claims to solve them is simply trying to hide the problem.



I'm not a CS major, so please correct me if I'm wrong.&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/YgJAgFzkeqU" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/jsr_277_on_modularity_jam</feedburner:origLink></item><item><title>Max Wang:   Nice IE</title><link>http://feedproxy.google.com/~r/javasec/~3/oRyYaNcTnps/nice_ie</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Mon, 19 May 2008 00:25:18 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/nice_ie</guid><description>For the first time, I'm appreciating IE, for its adding of filter:gray CSS property.



Thank you.&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/oRyYaNcTnps" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/nice_ie</feedburner:origLink></item><item><title>Max Wang:   Direct Internet Access in Office</title><link>http://feedproxy.google.com/~r/javasec/~3/wDKIhjF-Ijw/direct_internet_access_in_office</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Mon, 19 May 2008 00:21:56 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/direct_internet_access_in_office</guid><description>Last Saturday, I found unable to SSH into my Linux box in the office, turns out we had a network upgrade at the weekend, and the NIS server's IP address got changed. I had placed static IP into /etc/yp.conf, therefore, a failure.



Fix the error this morning and it connects again. Another change is now that DIA (Direct Internet Access) is enabled. Solaris can ping external hosts directly. For Linux, update the hosts line in /etc/nsswitch.conf into hosts: nis files dns mdns.&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/wDKIhjF-Ijw" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/direct_internet_access_in_office</feedburner:origLink></item><item><title>Max Wang:   Silence</title><link>http://feedproxy.google.com/~r/javasec/~3/f7VaVUW1N58/silence</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Sun, 18 May 2008 16:26:24 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/silence</guid><description>Two minutes later, 14:28 Chinese time, exactly seven days after the earthquake in Wenchuan, there will be a three minutes slience all over China. Stand up!&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/f7VaVUW1N58" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/silence</feedburner:origLink></item><item><title>Max Wang:   Wireshark Brings Down the Network?</title><link>http://feedproxy.google.com/~r/javasec/~3/i-RrAEl-IWw/wireshark_brings_down_the_network</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Mon, 12 May 2008 20:00:07 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/wireshark_brings_down_the_network</guid><description>I'm writing some network related codes now and would like to use Wireshark to see what's going on.



It's strange that anytime I start wireshark (using "sudo wireshark" to see the NICs) and press the capture button, the wireless network is brought down. The wireless menu icon goes gray, and when I try to reconnect, it reports a failure. However, I can turn AirPort Off and turn it on again to connect to the network again, and Wireshark works fine.



No idea why. I'm using Mac OS X 10.4.11 and Wireshark 0.99.7 with libpcap 0.9.4.&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/i-RrAEl-IWw" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/wireshark_brings_down_the_network</feedburner:origLink></item><item><title>Max Wang:   I Love This OpenSolaris</title><link>http://feedproxy.google.com/~r/javasec/~3/Cv-zSioHzr8/i_love_this_opensolaris</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Mon, 12 May 2008 18:40:13 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/i_love_this_opensolaris</guid><description>Yesterday evening I spend some time playing with the newly released OpenSolaris 2008.05 CD-ROM, and it's just so amazing!



I don't have a PC at home (not exactly, read the end of this post), so I try it out on my wife's ThinkPad notebook (she would not allow me to install a new OS there). Everything works so fine, although I don't like the continuous humming from the CD-ROM drive.



I feel satisfied at these points especially:

Nice network support. It automatically find the wireless card, detect the access points, and ask me to choose one. After I choose one, and enter the password, it...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/Cv-zSioHzr8" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/i_love_this_opensolaris</feedburner:origLink></item><item><title>Max Wang:   IP addresses with VPN, and "kinit -xa"</title><link>http://feedproxy.google.com/~r/javasec/~3/_cyspjKOsHQ/ip_addresses_with_vpn_and</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Wed, 07 May 2008 16:25:19 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/ip_addresses_with_vpn_and</guid><description>I'm working from home now, connecting to the office network thru VPN. Running 'ifconfig -a' does not show the IP address for the VPN, although I can find it by using "who" in a SSH session into a office machine or simply look at the Shimo statistics pane.



But here comes a problem, Java's Kerberos uses the following method to fill addresses into the AS-REQ message when requesting the initial TGT from a KDC (which is in the office):

InetAddress.getAllByName(InetAddress.getLocalHost().getHostName())

and it cannot find the VPN IP. So if I use this TGT to request for a service ticket, an...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/_cyspjKOsHQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/ip_addresses_with_vpn_and</feedburner:origLink></item><item><title>Max Wang:   Get Off the Stage! You Kindle Idiot.</title><link>http://feedproxy.google.com/~r/javasec/~3/ZUMZJ2CrgXk/get_off_the_stage_you</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Tue, 06 May 2008 12:19:08 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/get_off_the_stage_you</guid><description>I'm watching the replay of the first JavaOne General Session, and see this Kindle guy joining Rich Green on the stage, taking out his black and white book reader, demonstrating how stupidly easy it is to buy books online. After showing several Java books, quite carelessly, or at least it seems so, he shows another book, with the sketch of this man, of whom he speaks out the name on the stage:


Dalai Lama.



OK, so this guy hijacks a technical conference for 2 seconds because of his political bias and passionate love for a monk. He must be quite proud of living in a modern world and knows...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/ZUMZJ2CrgXk" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/get_off_the_stage_you</feedburner:origLink></item><item><title>Max Wang:   VirtualBox 1.6's Network Problem</title><link>http://feedproxy.google.com/~r/javasec/~3/8t0TWj7uhQ8/virtualbox_1_6_s_network</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wangwj</dc:creator><pubDate>Mon, 05 May 2008 12:47:45 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/wangwj/entry/virtualbox_1_6_s_network</guid><description>Just upgrade to 1.6, all guests started but cannot talk to each other. They were connected into a shared "Internal Network" but now seems torn apart. XP cannot get a DHCP IP address from KDC. Even it's configured a static address, it cannot ping KDC.



I'll try to create another Internal Network and put them into this new one, hope this can solve the problem.



Update (2:18pm): Does not work. I finally reinstall version 1.56 and now they are running. I am a little suspect about what the issue really is. Because even after I install 1.56, the IP addresses go wrong once too. Anyway, for 1.56,...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/8t0TWj7uhQ8" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wangwj/entry/virtualbox_1_6_s_network</feedburner:origLink></item><item><title>Brad Wetmore:   I Have Met "The Man," and The Tail Will Not Be Pretty.</title><link>http://feedproxy.google.com/~r/javasec/~3/9P6DK9IbI70/i_have_met_the_man</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Wetmore</dc:creator><pubDate>Wed, 05 Mar 2008 06:53:40 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wetmore/entry/i_have_met_the_man</guid><description>&amp;nbsp;I love "dives."&amp;nbsp; You know those places that you look at from the outside, and say..."hmm..."&amp;nbsp; But with lines out the door, you know they must be doing something right.&amp;nbsp; Once you get inside, you know there's something special going on in the kitchen.&amp;nbsp; My wife has always accused me of taking her to only the "finest" establishments, but this one almost killed her. 
A little backstory:&amp;nbsp;&amp;nbsp;As my little brother was graduating from college, he was seduced by the Dark Side and moved to Redmond Washington to work for the large unnamed software company based...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/9P6DK9IbI70" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wetmore/entry/i_have_met_the_man</feedburner:origLink></item><item><title>Brad Wetmore:   Leave me alone, I'm on vacation!</title><link>http://feedproxy.google.com/~r/javasec/~3/IGNSDRjJVb8/leave_me_alone_i_m</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Wetmore</dc:creator><pubDate>Thu, 14 Feb 2008 09:02:14 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wetmore/entry/leave_me_alone_i_m</guid><description>I've got no qualms about giving my all when I'm working.&amp;nbsp; I've done the long days, the long nights, the long weekends.&amp;nbsp; But when I officially pull the plug and go on vacation, I expect to be able to leave Sun behind, and enjoy some well-deserved time off without any reminders of what I do the rest of the year.&amp;nbsp; 

 I don't think that's too much to ask.&amp;nbsp; But have you ever tried to unplug yourself completely when you work for a "network" company like Sun?&amp;nbsp; 
I first noticed it on a trip to Nepal.&amp;nbsp; I had just finished a rather stressful project, and was glad to be...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/IGNSDRjJVb8" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wetmore/entry/leave_me_alone_i_m</feedburner:origLink></item><item><title>Brad Wetmore:   "You're a...Gatekeeper? Uh huh. What's a Gatekeeper?"</title><link>http://feedproxy.google.com/~r/javasec/~3/tXBjISUyWj0/you_re_a_gatekeeper_uh</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Wetmore</dc:creator><pubDate>Mon, 11 Feb 2008 07:12:41 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wetmore/entry/you_re_a_gatekeeper_uh</guid><description>(You might want to read Kelly O'Hair's "OpenJDK Mercurial Wheel" blog entry before reading this.) 
Besides my normal job as a developer in the Java Security and Networking (JSN) and&amp;nbsp; the Java Tools/Libraries (TL) groups, I have been tasked from time to time as the "Gatekeeper" (also known as an "Integrator") for the JSN group.&amp;nbsp; Some of you have asked on the IRC channel #openjdk, "What's a Gatekeeper?"&amp;nbsp; Good question.&amp;nbsp; Ask any of the N gatekeepers, and you'll get N different answers.
Since I'm a musician by night, I had to distill it down to a song that's been running...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/tXBjISUyWj0" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wetmore/entry/you_re_a_gatekeeper_uh</feedburner:origLink></item><item><title>Brad Wetmore:   Nice Overview for Getting Started with OpenJDK</title><link>http://feedproxy.google.com/~r/javasec/~3/WUYqHdE96jw/nice_overview_for_getting_started</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Wetmore</dc:creator><pubDate>Mon, 11 Feb 2008 07:08:35 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/wetmore/entry/nice_overview_for_getting_started</guid><description>Lars Westergren posted an article in his blog about what the OpenJDK project is and how it works.&amp;nbsp; I found it to be a great overview, as he did a nice job on culling information from various sources and presenting it in a very coherent manner.&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/WUYqHdE96jw" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/wetmore/entry/nice_overview_for_getting_started</feedburner:origLink></item><item><title>Chris Hegarty:   California Superbike School - Mondello</title><link>http://feedproxy.google.com/~r/javasec/~3/fdFcozrm5nU/california_superbike_school_mondello</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chegar</dc:creator><pubDate>Fri, 07 Sep 2007 02:00:40 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/chegar/entry/california_superbike_school_mondello</guid><description>Here are some pics of the California Superbike School
I took part in at Mondello
race track.&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/fdFcozrm5nU" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/chegar/entry/california_superbike_school_mondello</feedburner:origLink></item><item><title>Xuelei Fan:   Fine granularity diagnosis on security</title><link>http://feedproxy.google.com/~r/javasec/~3/oFYm80mhDZ4/fine_granularity_diagnosis_on_security</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Thu, 09 Nov 2006 23:38:12 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/fine_granularity_diagnosis_on_security</guid><description>You're supposed&amp;nbsp; to familiar with the java.security.debug property, otherwise please refer to the sample chapter of "Java Security". 
Before Java 6, if the security debug property, java.security.debug, is enabled, a large volume of debug output will be dumped. For example, if&amp;nbsp; java.security.debug deinfed as access:stack, every stack will be dumped if a permission is checked on. Even for a simple application, the output normally runs over several pages. In server products, such as Sun Web Server and App Server, the amount of output is overwhelming, analysis them manually&amp;nbsp; is a...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/oFYm80mhDZ4" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/fine_granularity_diagnosis_on_security</feedburner:origLink></item><item><title>Xuelei Fan:   keystore alias -- case sensitive or not</title><link>http://feedproxy.google.com/~r/javasec/~3/lQtDKUihbdc/keystore_alias_case_sensitive_or</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">XueLei.Fan</dc:creator><pubDate>Sun, 12 Mar 2006 22:50:51 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/xuelei/entry/keystore_alias_case_sensitive_or</guid><description>A KeyStore manages different types of entries, including cryptographic keys and certificates. Each entry in a keystore is identified by an "alias" string.

Before Java SE 6, the java spec didn't declare whether the alias should be case sesitive or not. As result in different implementation, as I known, Bouncy Castle Crypto package treats the keystore alias as case-sensitive data, while Sun and IBM providers regard it as case-insensitive for "JKS/JCEKS/PKCS12" keystore. However, with the support of PKCS11 key store, because of the PKCS#11 specification, the keystore alias is case sensitive for...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/lQtDKUihbdc" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/xuelei/entry/keystore_alias_case_sensitive_or</feedburner:origLink></item><item><title>Chris Hegarty:   HTTP Keep-Alive improvements.</title><link>http://feedproxy.google.com/~r/javasec/~3/-nJTBvkhR0c/http_keep_alive_improvements</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chegar</dc:creator><pubDate>Tue, 14 Feb 2006 23:01:02 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/chegar/entry/http_keep_alive_improvements</guid><description>HttpURLConnection, as a HTTP 1.1 client has an in built keep-alive implementation to handle persistent connections. This has been around in previous releases, but mustang beta brings one significant improvement to this. The ability to reuse connections where not all of the response body has been read. This issue was at one time in the
top 10 of the top 25 Bugs
, with 117 votes against it. 
We have implemented an asynchronous cleanup of unread response body from the underlying socket. So if the InputStream is closed before all of the response body is read, its underlying TCP connection is put...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/-nJTBvkhR0c" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/chegar/entry/http_keep_alive_improvements</feedburner:origLink></item><item><title>Chris Hegarty:   Diagnosing DeleteOnExit Issues.</title><link>http://feedproxy.google.com/~r/javasec/~3/0zd5viXBoHA/diagnosing_deleteonexit_issues</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chegar</dc:creator><pubDate>Mon, 06 Feb 2006 00:04:17 PST</pubDate><guid isPermaLink="false">http://blogs.sun.com/chegar/entry/diagnosing_deleteonexit_issues</guid><description>Based on a peabody contribution by Matthias
File.deleteOnExit was
re-implemented in mustang b63 and now uses java level shutdown hooks.
Previously there was a native implementation that registered
filenames to be deleted at exit in a native linked list type structure and which was called during the vm exit to do the cleanup. Diagnosing
issues where excessive use of deleteOnExit was causing OutOfMemoryErrors was very difficult as the list was held in native heap. 
The re-implementation of deleteOnExit using java level shutdown hooks
has several benefits:
 
A file name is only added once to the...&lt;img src="http://feeds.feedburner.com/~r/javasec/~4/0zd5viXBoHA" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.sun.com/chegar/entry/diagnosing_deleteonexit_issues</feedburner:origLink></item></channel></rss>
