<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[char* zu unsigned char*]]></title><description><![CDATA[<p>hallo,</p>
<p>bei meiner funktion (openssl-verschlüsselung) gibt es probleme bei der umwandlung von char* zu unsigned char*</p>
<pre><code class="language-cpp">string CRYPT::encrypt(char *key, char *iv) {
 	EVP_CIPHER_CTX *ctx;

  	/* This uses the OpenSSL PRNG .  See Recipe  11.9 */
  	RAND_bytes(reinterpret_cast&lt;unsigned char*&gt;(key), EVP_MAX_KEY_LENGTH);
  	RAND_bytes(reinterpret_cast&lt;unsigned char*&gt;(iv), EVP_MAX_IV_LENGTH);
  	if (!(ctx = (EVP_CIPHER_CTX *)malloc(sizeof(EVP_CIPHER_CTX)))) exit(1);
  	EVP_CIPHER_CTX_init(ctx);
  	EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), 0, reinterpret_cast&lt;unsigned char*&gt;(key), reinterpret_cast&lt;unsigned char*&gt;(iv));
}
</code></pre>
<p>wie stell ich es denn geschickter an, ohne reinterpret_cast welches einen segmentation fault verursacht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> THX</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190172/char-zu-unsigned-char</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 13:11:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190172.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 20 Aug 2007 12:21:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to char* zu unsigned char* on Mon, 20 Aug 2007 12:21:46 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>bei meiner funktion (openssl-verschlüsselung) gibt es probleme bei der umwandlung von char* zu unsigned char*</p>
<pre><code class="language-cpp">string CRYPT::encrypt(char *key, char *iv) {
 	EVP_CIPHER_CTX *ctx;

  	/* This uses the OpenSSL PRNG .  See Recipe  11.9 */
  	RAND_bytes(reinterpret_cast&lt;unsigned char*&gt;(key), EVP_MAX_KEY_LENGTH);
  	RAND_bytes(reinterpret_cast&lt;unsigned char*&gt;(iv), EVP_MAX_IV_LENGTH);
  	if (!(ctx = (EVP_CIPHER_CTX *)malloc(sizeof(EVP_CIPHER_CTX)))) exit(1);
  	EVP_CIPHER_CTX_init(ctx);
  	EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), 0, reinterpret_cast&lt;unsigned char*&gt;(key), reinterpret_cast&lt;unsigned char*&gt;(iv));
}
</code></pre>
<p>wie stell ich es denn geschickter an, ohne reinterpret_cast welches einen segmentation fault verursacht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> THX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348204</guid><dc:creator><![CDATA[ts0]]></dc:creator><pubDate>Mon, 20 Aug 2007 12:21:46 GMT</pubDate></item><item><title><![CDATA[Reply to char* zu unsigned char* on Mon, 20 Aug 2007 12:32:12 GMT]]></title><description><![CDATA[<p>wenn du nicht gerade auf exakt dieses Interface fuer diene Methode angewiesen bist, wuerde ich ihr einfach auch unsigned char* parameter geben, so dass die ganzen casts nicht mehr noetig sind, bzw. nur einmalig vom Aufrufer.<br />
Die Methode arbeitet nunmal mit Daten, die &quot;eigentlich&quot; unsigned char* sein sollen, dann sollte sie auch solche verlangen. Die Aufgabe der Methode ist schliesslich nicht das Umwandeln sondern das Verarbeiten der Daten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348218</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 20 Aug 2007 12:32:12 GMT</pubDate></item><item><title><![CDATA[Reply to char* zu unsigned char* on Mon, 20 Aug 2007 13:03:09 GMT]]></title><description><![CDATA[<p>bleibt aber immer noch das problem der umwandlung... egal ob ich es nun innerhalb oder außerhalb der methode mache!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348248</guid><dc:creator><![CDATA[ts0]]></dc:creator><pubDate>Mon, 20 Aug 2007 13:03:09 GMT</pubDate></item><item><title><![CDATA[Reply to char* zu unsigned char* on Mon, 20 Aug 2007 13:15:23 GMT]]></title><description><![CDATA[<p>Die einfachste Lösung ist's da wohl, komplett mit unsigned char's zu arbeiten.</p>
<p>PS: Übrigens ist nicht der Cast für deine Speicherfehler verantwortlich - die treten vermutlich in deiner Funktion auf, weil du über das Ende deiner Eingabedaten hinausliest (oder vor dem Aufruf nicht genug Platz angefordert hast).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348264</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 20 Aug 2007 13:15:23 GMT</pubDate></item><item><title><![CDATA[Reply to char* zu unsigned char* on Mon, 20 Aug 2007 13:35:32 GMT]]></title><description><![CDATA[<p>HI,</p>
<p>also ich muss hier mal ts0 mal beipflichten: Das ist in C (und wohl in C++ nicht anders) total beknackt !!!<br />
(jetzt kommt C-Frust aus meinem täglichen Umfeld)<br />
Da muss man evtl. irgendwo den Text verschlüsseln und schon muss das gesamte Programm mit &quot;unsigned char&quot; arbeiten ? Oder wild durch die Gegend cast-en ?<br />
IMO ist das ein Datentypproblem bei C, dass &quot;char&quot; zwar suggeriert (und auch fast immer dafür verwendet wird), zum Speichern von &quot;Buchstaben&quot; (&quot;character&quot;) da zu sein, aber in Wirklichkeit eine Zahlvariable darstellt.<br />
Da hätte es den C-Designer gut angestanden, das zu trennen ... und am Besten &quot;hierarchisch mit unsigned char&quot; (oder besser &quot;byte&quot;) zu koppeln.<br />
Bei Aufgaben, bei denen es nur darauf ankommt, eine Variable im Speicher aussieht (wie hier: Verschlüsseln), sollte das ohne Murren klappen - und ohne, dass ich mir dann andere Funktionen (wie str...()) &quot;abschneide&quot;.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348300</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348300</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 20 Aug 2007 13:35:32 GMT</pubDate></item></channel></rss>