Skip to content

Commit

Permalink
Generated gh-pages for commit a9302bf
Browse files Browse the repository at this point in the history
Author: Hanna Rosul <[email protected]>

    Add Node JS example to Params Encryption section (#336)
  • Loading branch information
Doimhneacht committed Sep 24, 2024
1 parent a48793b commit e5a61e3
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 3 deletions.
29 changes: 28 additions & 1 deletion _sources/advanced_features/params_encryption.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -125,11 +125,38 @@ that can be downloaded from `Bouncy Castle Latest Releases`_.
}
public static void main(String[] args) throws Exception {
String email = "encrypted_email@example.com";
String email = "email_to_encrypt@example.com";
System.out.println(encryptParam(email));
}
}
Node.js Example
---------------

.. code-block:: js
const fs = require('fs');
const crypto = require('crypto');
// Read the public key from file
const publicKey = fs.readFileSync('talkable_your_site_slug_public_key.pem', 'utf8');
const encryptData = (data) => {
const encryptedData = crypto.publicEncrypt(
{
key: publicKey,
padding: crypto.constants.RSA_PKCS1_OAEP_PADDING,
oaepHash: 'sha1',
},
Buffer.from(data)
);
return encryptedData.toString('base64');
};
// Example usage
const encryptedEmail = encryptData('[email protected]');
console.log('Encrypted email:', encryptedEmail);
Front-end Part
--------------

Expand Down
1 change: 1 addition & 0 deletions advanced_features.html
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,7 @@ <h1>Features<a class="headerlink" href="#features" title="Link to this heading">
<li class="toctree-l2"><a class="reference internal" href="advanced_features/params_encryption.html#passing-email-as-a-get-parameter-to-standalone-campaign">Passing email as a GET parameter to Standalone Campaign</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced_features/params_encryption.html#ruby-example">Ruby Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced_features/params_encryption.html#java-example">Java Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced_features/params_encryption.html#node-js-example">Node.js Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced_features/params_encryption.html#front-end-part">Front-end Part</a></li>
</ul>
</li>
Expand Down
29 changes: 28 additions & 1 deletion advanced_features/params_encryption.html
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
<li class="toctree-l3"><a class="reference internal" href="#passing-email-as-a-get-parameter-to-standalone-campaign">Passing email as a GET parameter to Standalone Campaign</a></li>
<li class="toctree-l3"><a class="reference internal" href="#ruby-example">Ruby Example</a></li>
<li class="toctree-l3"><a class="reference internal" href="#java-example">Java Example</a></li>
<li class="toctree-l3"><a class="reference internal" href="#node-js-example">Node.js Example</a></li>
<li class="toctree-l3"><a class="reference internal" href="#front-end-part">Front-end Part</a></li>
</ul>
</li>
Expand Down Expand Up @@ -224,13 +225,39 @@ <h2>Java Example<a class="headerlink" href="#java-example" title="Link to this h
<span class="w"> </span><span class="p">}</span>

<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">Exception</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="n">email</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;encrypted_email@example.com&quot;</span><span class="p">;</span>
<span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="n">email</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;email_to_encrypt@example.com&quot;</span><span class="p">;</span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">encryptParam</span><span class="p">(</span><span class="n">email</span><span class="p">));</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
</div>
</section>
<section id="node-js-example">
<h2>Node.js Example<a class="headerlink" href="#node-js-example" title="Link to this heading"></a></h2>
<div class="highlight-js notranslate"><div class="highlight"><pre><span></span><span class="kd">const</span><span class="w"> </span><span class="nx">fs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">require</span><span class="p">(</span><span class="s1">&#39;fs&#39;</span><span class="p">);</span>
<span class="kd">const</span><span class="w"> </span><span class="nx">crypto</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">require</span><span class="p">(</span><span class="s1">&#39;crypto&#39;</span><span class="p">);</span>

<span class="c1">// Read the public key from file</span>
<span class="kd">const</span><span class="w"> </span><span class="nx">publicKey</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">fs</span><span class="p">.</span><span class="nx">readFileSync</span><span class="p">(</span><span class="s1">&#39;talkable_your_site_slug_public_key.pem&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;utf8&#39;</span><span class="p">);</span>

<span class="kd">const</span><span class="w"> </span><span class="nx">encryptData</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="nx">data</span><span class="p">)</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">encryptedData</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">crypto</span><span class="p">.</span><span class="nx">publicEncrypt</span><span class="p">(</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">key</span><span class="o">:</span><span class="w"> </span><span class="nx">publicKey</span><span class="p">,</span>
<span class="w"> </span><span class="nx">padding</span><span class="o">:</span><span class="w"> </span><span class="nx">crypto</span><span class="p">.</span><span class="nx">constants</span><span class="p">.</span><span class="nx">RSA_PKCS1_OAEP_PADDING</span><span class="p">,</span>
<span class="w"> </span><span class="nx">oaepHash</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;sha1&#39;</span><span class="p">,</span>
<span class="w"> </span><span class="p">},</span>
<span class="w"> </span><span class="nx">Buffer</span><span class="p">.</span><span class="kr">from</span><span class="p">(</span><span class="nx">data</span><span class="p">)</span>
<span class="w"> </span><span class="p">);</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">encryptedData</span><span class="p">.</span><span class="nx">toString</span><span class="p">(</span><span class="s1">&#39;base64&#39;</span><span class="p">);</span>
<span class="p">};</span>

<span class="c1">// Example usage</span>
<span class="kd">const</span><span class="w"> </span><span class="nx">encryptedEmail</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">encryptData</span><span class="p">(</span><span class="s1">&#39;[email protected]&#39;</span><span class="p">);</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">&#39;Encrypted email:&#39;</span><span class="p">,</span><span class="w"> </span><span class="nx">encryptedEmail</span><span class="p">);</span>
</pre></div>
</div>
</section>
<section id="front-end-part">
<h2>Front-end Part<a class="headerlink" href="#front-end-part" title="Link to this heading"></a></h2>
<p>Please modify the front-end using this pseudo code example:</p>
Expand Down
2 changes: 1 addition & 1 deletion searchindex.js

Large diffs are not rendered by default.

0 comments on commit e5a61e3

Please sign in to comment.