BN_BN2BIN(3SSL)

الاسم
BN_bn2binpad, BN_signed_bn2bin, BN_bn2bin, BN_bin2bn, BN_signed_bin2bn, BN_bn2lebinpad, BN_signed_bn2lebin, BN_lebin2bn, BN_signed_lebin2bn, BN_bn2nativepad, BN_signed_bn2native, BN_native2bn, BN_signed_native2bn, BN_bn2hex, BN_bn2dec, BN_hex2bn, BN_dec2bn, BN_print, BN_print_fp, BN_bn2mpi, BN_mpi2bn - تحويلات التنسيق

موجز
 #include <openssl/bn.h>

 int BN_bn2bin(const BIGNUM *a, unsigned char *to);
 int BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen);
 int BN_signed_bn2bin(const BIGNUM *a, unsigned char *to, int tolen);
 BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret);
 BIGNUM *BN_signed_bin2bn(const unsigned char *s, int len, BIGNUM *ret);

 int BN_bn2lebinpad(const BIGNUM *a, unsigned char *to, int tolen);
 int BN_signed_bn2lebin(const BIGNUM *a, unsigned char *to, int tolen);
 BIGNUM *BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret);
 BIGNUM *BN_signed_lebin2bn(const unsigned char *s, int len, BIGNUM *ret);

 int BN_bn2nativepad(const BIGNUM *a, unsigned char *to, int tolen);
 int BN_signed_bn2native(const BIGNUM *a, unsigned char *to, int tolen);
 BIGNUM *BN_native2bn(const unsigned char *s, int len, BIGNUM *ret);
 BIGNUM *BN_signed_native2bn(const unsigned char *s, int len, BIGNUM *ret);

 char *BN_bn2hex(const BIGNUM *a);
 char *BN_bn2dec(const BIGNUM *a);
 int BN_hex2bn(BIGNUM **a, const char *str);
 int BN_dec2bn(BIGNUM **a, const char *str);

 int BN_print(BIO *fp, const BIGNUM *a);
 int BN_print_fp(FILE *fp, const BIGNUM *a);

 int BN_bn2mpi(const BIGNUM *a, unsigned char *to);
 BIGNUM *BN_mpi2bn(unsigned char *s, int len, BIGNUM *ret);

الوصف
BN_bn2bin() تحوِّل القيمة المطلقة لـ a إلى صيغة big-endian وتخزِّنها في to. يجب أن يشير to إلى BN_num_bytes(a) بايت من الذاكرة. a و to يجب ألا يكونا NULL.

BN_bn2binpad() تحوِّل أيضًا القيمة المطلقة لـ a إلى صيغة big-endian وتخزِّنها في to. يشير tolen إلى طول المخزن المؤقت للمخرجات to. يُحشى الناتج بالأصفار عند الضرورة. إذا كان tolen أقل من BN_num_bytes(a)، يُعاد خطأ.

تحول الدالة BN_signed_bn2bin() قيمة a إلى صيغة المكمل الثنائي الموقّع كبير النهاية وتخزنه في to. يشير tolen إلى طول المخزن المؤقت للمخرجات to. يُمدد الناتج بالتوقيع (يُحشى بـ 0x00 للأعداد الموجبة أو بـ 0xff للأعداد السالبة) إذا لزم الأمر. إذا كان tolen أصغر من الحجم المطلوب (والذي قد يكون "<BN_num_bytes(a) + 1">)، يُرجع خطأ.

BN_bin2bn() تحوِّل العدد الصحيح الموجب بصيغة big-endian بطول len في s إلى BIGNUM وتضعه في ret. إذا كان ret NULL، يُنشأ BIGNUM جديد. s يجب ألا يكون NULL.

تحول الدالة BN_signed_bin2bn() العدد الصحيح بصيغة المكمل الثنائي الموقّع كبير النهاية بطول len عند s إلى BIGNUM وتضعه في ret. إذا كان ret هو NULL، يُنشأ BIGNUM جديد.

BN_bn2lebinpad() و BN_signed_bn2lebin() و BN_lebin2bn() مطابقة لـ BN_bn2binpad() و BN_signed_bn2bin() و BN_bin2bn() باستثناء أن المخزن المؤقت بصيغة little-endian.

BN_bn2nativepad() و BN_signed_bn2native() و BN_native2bn() مطابقة لـ BN_bn2binpad() و BN_signed_bn2bin() و BN_bin2bn() باستثناء أن المخزن المؤقت بصيغة أصلية، أي البايت الأكثر أهمية أولاً على منصات big-endian، والبايت الأقل أهمية أولاً على منصات little-endian.

تُرجع الدالتان BN_bn2hex() و BN_bn2dec() سلاسل قابلة للطباعة تحتوي على الترميز السداسي عشري والعشري لـ a على التوالي. بالنسبة للأعداد السالبة، تُسبق السلسلة بعلامة '-'. يجب تحرير السلسلة لاحقًا باستخدام OPENSSL_free().

تأخذ الدالة BN_hex2bn() أكبر عدد ممكن من الأحرف من السلسلة str، بما في ذلك الحرف البادئ '-' الذي يعني سالبًا، لتكوين تمثيل عدد سداسي عشري صالح وتحولها إلى BIGNUM وتخزنه في **a. إذا كان *a هو NULL، يُنشأ BIGNUM جديد. إذا كان a هو NULL، فإنها تحسب فقط طول التمثيل الصالح. يُحول "الصفر السالب" إلى صفر. الدالة BN_dec2bn() هي نفسها باستخدام النظام العشري.

تكتب الدالتان BN_print() و BN_print_fp() الترميز السداسي عشري لـ a، مع علامة '-' بادئة للأعداد السالبة، إلى BIO أو FILE fp.

تحول الدالتان BN_bn2mpi() و BN_mpi2bn() كائنات BIGNUM من وإلى صيغة تتكون من طول العدد بالبايتات ممثلاً كعدد كبير النهاية من 4 بايتات، والعدد نفسه بصيغة كبيرة النهاية، حيث تشير البتة الأكثر أهمية إلى عدد سالب (يُسبق تمثيل الأعداد ذات البتة الأكثر أهمية المضبوطة ببايت فارغ).

BN_bn2mpi() تخزِّن تمثيل a في to، حيث يجب أن يكون to كبيرًا بما يكفي لاستيعاب الناتج. يمكن تحديد الحجم باستدعاء BN_bn2mpi(a, NULL).

BN_mpi2bn() تحوِّل التمثيل بطول len بايت في s إلى BIGNUM وتخزّنه في ret، أو في BIGNUM مخصص حديثًا إذا كان ret NULL.

القيم المُرجعة
BN_bn2bin() تُعيد طول الرقم big-endian الموضوع في to. BN_bin2bn() تُعيد BIGNUM، NULL عند الخطأ.

تُرجع الدوال BN_bn2binpad() و BN_signed_bn2bin() و BN_bn2lebinpad() و BN_signed_bn2lebin() و BN_bn2nativepad() و BN_bn2native() عدد البايتات المكتوبة أو -1 إذا كان المخزن المؤقت المقدم صغيرًا جدًا.

تُرجع الدالتان BN_bn2hex() و BN_bn2dec() سلسلة منتهية بـ NUL، أو NULL عند الخطأ. تُرجع الدالتان BN_hex2bn() و BN_dec2bn() عدد الأحرف المستخدمة في التحليل، أو 0 عند الخطأ، وفي هذه الحالة لن يُنشأ أي BIGNUM جديد.

تُرجع الدالتان BN_print_fp() و BN_print() 1 عند النجاح، و0 عند أخطاء الكتابة.

تُرجع الدالة BN_bn2mpi() طول التمثيل. تُرجع الدالة BN_mpi2bn() قيمة BIGNUM، وNULL عند الخطأ.

يمكن الحصول على رموز الخطأ بواسطة ERR_get_error(3).

انظر أيضًا
ERR_get_error(3)، BN_zero(3)، ASN1_INTEGER_to_BN(3)، BN_num_bytes(3)

التاريخ
أُضيفت الدوال BN_signed_bin2bn() و BN_signed_bn2bin() و BN_signed_lebin2bn() و BN_signed_bn2lebin() و BN_signed_native2bn() و BN_signed_bn2native() في OpenSSL 3.2.

حقوق النسخ
حقوق النشر 2000-2024 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة.

مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط <https://www.openssl.org/source/license.html>.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.