<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Manuka Maduranga</title>
    <description>The latest articles on DEV Community by Manuka Maduranga (@manukam).</description>
    <link>https://dev.to/manukam</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F58220%2Ffb65dbe4-1ca6-4cf7-9d33-8608943244a1.jpg</url>
      <title>DEV Community: Manuka Maduranga</title>
      <link>https://dev.to/manukam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/manukam"/>
    <language>en</language>
    <item>
      <title>What is PKCS12?</title>
      <dc:creator>Manuka Maduranga</dc:creator>
      <pubDate>Tue, 11 Feb 2020 14:16:10 +0000</pubDate>
      <link>https://dev.to/manukam/pkcs12-b2m</link>
      <guid>https://dev.to/manukam/pkcs12-b2m</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F1e87ho573glv7p9x05of.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F1e87ho573glv7p9x05of.jpg" alt="SSL"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whenever we talk about secure communication over networks, keywords such as "SSL", "Keystores", "JKS" pop up frequently.&lt;br&gt;
Typically keystores and trust stores are used when our applications need to communicate securely over SSL/TLS.&lt;br&gt;
For more details about how communication over SSL works, follow the blog mentioned below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dzone.com/articles/what-is-ssl-how-do-ssl-certificates-work" rel="noopener noreferrer"&gt;SSL Certificates&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These keystores and trust stores are password-protected files that reside on the same file system as the application. The default and the most widely used format for these files are JKS (Java Keystore). At least that was the case until Java 8.&lt;/p&gt;

&lt;p&gt;With Java 9, the default Keystore format was changed from JKS to PKCS12. The most noteworthy difference between JKS and PKCS12 is that while JKS was a format specific to Java, PKCS12 is a standardized and language-neutral way of storing encrypted private keys and certificates.&lt;br&gt;
Here's an excerpt from the official definition -&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"A PKCS12(Public-Key Cryptography Standards) defines an archive file format for storing server certificates, intermediate certificate if any, and private key into a single encryptable file"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So why did Java 9 made PKCS12 the default?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Secret keys, private keys, and certificates can be stored&lt;/li&gt;
&lt;li&gt;PKCS12 is a standard format, it can be read by other programs and 
libraries while JKS is java specific.&lt;/li&gt;
&lt;li&gt;Improved security: JKS is pretty insecure. This can be seen by the 
the number of tools for brute-forcing passwords of this Keystore 
types, especially popular among Android developers [1].&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're working in Java then the Java Key Store is a fairly natural place to store private keys. Java applications typically expect to get the keys they need from JKS, and it's easy to access from your own Java apps. JKS is not accessible from outside Java though.&lt;br&gt;
PKCS12 (aka PFX) files, on the other hand, are language-neutral and is more secure and has been around long enough that it's supported just about everywhere.&lt;br&gt;
If you want to convert JKS (.jks) Keystore to a PKCS12 (.p12) Keystore, you can do so by executing the following command.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;keytool -importkeystore -srckeystore [MY_KEYSTORE.jks] -destkeystore [MY_FILE.p12] -srcstoretype JKS - deststoretype PKCS12 -deststorepass [PASSWORD_PKCS12]&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;[MY_KEYSTORE.jks]&lt;/code&gt;: The path to the Keystore that you want to convert.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;[MY_FILE.p12]&lt;/code&gt;: path to the PKCS12 file (.p12 or .pfx extension) that 
               is going to be created.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;[PASSWORD_PKCS12]&lt;/code&gt;: The password that will be requested at the PKCS12 
                   file opening.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the end of the day, the decision on what Keystore type to use should be based on how you plan to use the private key - that is: what applications will need to use the private key and what format(s) of key store do they already handle. PKCS12 is a more flexible and secure option.&lt;br&gt;
Thank you for reading up until the end, if you have any questions regarding this feel free to mention them in the comments.&lt;/p&gt;

&lt;p&gt;[1] - &lt;a href="https://www.ndss-symposium.org/wp-content/uploads/2018/02/ndss2018_02B-1_Focardi_paper.pdf" rel="noopener noreferrer"&gt;https://www.ndss-symposium.org/wp-content/uploads/2018/02/ndss2018_02B-1_Focardi_paper.pdf&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ssl</category>
      <category>pkcs12</category>
      <category>java</category>
      <category>jks</category>
    </item>
    <item>
      <title>Expertise and context-based answer rating system for Q&amp;A websites.</title>
      <dc:creator>Manuka Maduranga</dc:creator>
      <pubDate>Sun, 24 Jun 2018 15:10:05 +0000</pubDate>
      <link>https://dev.to/manukam/expertise-and-context-based-answer-rating-system-for-qa-websites-1ikp</link>
      <guid>https://dev.to/manukam/expertise-and-context-based-answer-rating-system-for-qa-websites-1ikp</guid>
      <description>&lt;p&gt;First of all, let me give you a bit of context. I am into the final year of my undergraduate studies and as part of the final year, I have the opportunity to do a research project. So this is merely a concept I cooked up inside my head and I wanted to hear what the fellow devs think before I pitch this to my supervisor. Any feedback is welcome.&lt;/p&gt;

&lt;p&gt;Let's take StackOverflow as an example, because why not? Currently, any type of feedback you give, doesn't matter who you are and how much reputation you have, you can have a 10k reputation or you can have 10 reputations, it's all taken the same. &lt;br&gt;
What I basically want to do is change this and make these feedback a user gives, weigh according to their expertise and the context of the question.&lt;br&gt;
For Example, let's imagine there is a FORTRAN question, &lt;/p&gt;

&lt;p&gt;User A - Very experienced in FORTRAN.&lt;br&gt;
User B - Very experienced in Java. &lt;/p&gt;

&lt;p&gt;In this scenario, User A's feedback will have more weight than User B's feedback.&lt;/p&gt;

&lt;p&gt;This can be used in upvoting/downvoting questions or answers, ranking the order of answers displayed.  &lt;/p&gt;

&lt;p&gt;How to come up with the expertise? &lt;/p&gt;

&lt;p&gt;For that, I'm thinking of profiling the users based on their StackOverflow stats and maybe use their GitHub stats as well.&lt;/p&gt;

&lt;p&gt;I hope you understood what I'm trying to say. Look at this concept as a pure research project.&lt;/p&gt;

&lt;p&gt;Any feedback, good or bad is welcome, or if there are any improvements to be made.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>programming</category>
      <category>stackoverflow</category>
      <category>bigdata</category>
    </item>
    <item>
      <title>Rating StackOverflow Answers.</title>
      <dc:creator>Manuka Maduranga</dc:creator>
      <pubDate>Wed, 23 May 2018 20:21:08 +0000</pubDate>
      <link>https://dev.to/manukam/rating-stackoverflow-answers-5glm</link>
      <guid>https://dev.to/manukam/rating-stackoverflow-answers-5glm</guid>
      <description>&lt;p&gt;Fellow Devs, how would you like the idea of rating StackOverflow answers via answerers Github activity? Please sound off your thoughts below. (Consider this as for a pure research project)&lt;/p&gt;

</description>
      <category>stackoverflow</category>
      <category>github</category>
      <category>nlp</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Is one Technology really better than another?</title>
      <dc:creator>Manuka Maduranga</dc:creator>
      <pubDate>Sat, 24 Feb 2018 19:14:20 +0000</pubDate>
      <link>https://dev.to/manukam/is-one-technology-really-better-than-another--1mm</link>
      <guid>https://dev.to/manukam/is-one-technology-really-better-than-another--1mm</guid>
      <description>&lt;p&gt;Is one Technology really better than another?&lt;br&gt;
&lt;a href="https://medium.com/@manukamaduranga/is-one-technology-really-better-than-another-11ef666b685"&gt;https://medium.com/@manukamaduranga/is-one-technology-really-better-than-another-11ef666b685&lt;/a&gt;&lt;/p&gt;

</description>
      <category>php</category>
      <category>node</category>
      <category>programming</category>
    </item>
    <item>
      <title>Comparing Frameworks/Languages</title>
      <dc:creator>Manuka Maduranga</dc:creator>
      <pubDate>Sun, 18 Feb 2018 15:17:50 +0000</pubDate>
      <link>https://dev.to/manukam/comparing-frameworkslanguages--4g93</link>
      <guid>https://dev.to/manukam/comparing-frameworkslanguages--4g93</guid>
      <description>&lt;p&gt;Most of the people who say NodeJS is better than PHP has not even used PHP once in their lives. I'm not saying PHP is better, but you need have some amount of experience in both to make that kind of assessment.&lt;/p&gt;

</description>
      <category>php</category>
      <category>node</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
