⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wrapper.c

📁 symbian 发送短信例子 S60 SMS Sample
💻 C
字号:

#include <Python.h>
#include "s60crypt.h"

static PyObject* pycrypt_simplecrypt(PyObject* self, PyObject* args)
{
   char* data;
   int datalen;
   char* key;
   int keylen;
   char* out;
   int i;
   PyObject* result;

   if (!PyArg_ParseTuple(args, "s#s#", &data, &datalen, &key, &keylen))
     return NULL;

   out = (char*)malloc(datalen);
   if (!out)
     return PyErr_NoMemory();

   for(i=0; i<datalen; ++i) 
     out[i] = data[i] ^ key[i % keylen];

   result = Py_BuildValue("s#", out, datalen);
   free(out);
   if (!result)
     return PyErr_NoMemory();

   return result;
}

static PyObject* pycrypt_encrypt(PyObject* self, PyObject* args)
{
   char* data;
   int datalen;
   char* pw;
   int pwlen;
   char* out;
   PyObject* result;

   if (!PyArg_ParseTuple(args, "s#s#", &data, &datalen, &pw, &pwlen))
     return NULL;

   out = (char*)malloc(datalen);
   if (!out)
     return PyErr_NoMemory();

   s60_encrypt(datalen, data, out, pw, pwlen);

   result = Py_BuildValue("s#", out, datalen);
   free(out);
   if (!result)
     return PyErr_NoMemory();

   return result;
}

static PyObject* pycrypt_decrypt(PyObject* self, PyObject* args)
{
   char* data;
   int datalen;
   char* pw;
   int pwlen;
   char* out;
   PyObject* result;

   if (!PyArg_ParseTuple(args, "s#s#", &data, &datalen, &pw, &pwlen))
     return NULL;

   out = (char*)malloc(datalen);
   if (!out)
     return PyErr_NoMemory();

   s60_decrypt(datalen, data, out, pw, pwlen);

   result = Py_BuildValue("s#", out, datalen);
   free(out);
   if (!result)
     return PyErr_NoMemory();

   return result;
}


static const PyMethodDef PyCryptMethods[] =
{
  {"simplecrypt", pycrypt_simplecrypt, METH_VARARGS},
  {"encrypt", pycrypt_encrypt, METH_VARARGS},
  {"decrypt", pycrypt_decrypt, METH_VARARGS},
  {NULL, NULL}
};

DL_EXPORT(void) initpycrypt(void)
{
   (void)Py_InitModule("pycrypt", PyCryptMethods);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -