亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? defaultstorageprov.c

?? IBE是一種非對稱密碼技術
?? C
?? 第 1 頁 / 共 5 頁
字號:
    if (status != 0)
      break;

    /* Open this file to write. If it exists, destory the contents.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = fileCtx->CtxOpenFile (
      fileCtx, &fileHandle, fileName, VOLT_FILE_MODE_READ_OVERWRITE, 0600);
    if (status != 0)
      break;

    if (defStorageCtx->GetExtraPassword != (VGetExtraPassword)0)
    {
      VOLT_SET_FNCT_LINE (fnctLine)
      status = defStorageCtx->GetExtraPassword (ctx, &password, &passwordLen);
      if (status != 0)
        break;
    }

    VOLT_SET_FNCT_LINE (fnctLine)
    status = mIcStoreData (
      ctx, authToken, tokenLen, password, passwordLen, fileCtx, fileHandle);

  } while (0);  

  if (password != (unsigned char *)0)
    defStorageCtx->ReleaseExtraPassword (ctx, &password, &passwordLen);
  if (fileHandle != (VoltFileHandle)0)
    fileCtx->CtxCloseFile(fileCtx, &fileHandle);
  if (fileName != (unsigned char *)0)
    Z2Free (fileName);

  if (status == 0)
    return 0;

  /* Log any errors and return the error
  */
  VOLT_LOG_ERROR (
    (VtLibCtx)libCtx, status, errorType, fnctLine,
    "VoltStoreAuthTokenForDistrict", (char *)0)

  return (status);
}

int VoltDefaultStoreAuthToken (
   VtStorageCtx storageCtx,
   VtDistrictObject reference,
   unsigned char *authToken   
   )
{
  return VoltStoreAuthTokenForDistrict (
    storageCtx, reference, authToken, VOLT_FILE_NAME_VALUE_TYPE_IBE_TOKEN);
}

int VoltDefaultStoreIBEPrivateKey (
   VtStorageCtx storageCtx,
   VtIdentityObject reference,
   VtKeyObject entry
   )
{
  int status;
  unsigned int fileNameLen, contentsLen, passwordLen;
  VoltStorageCtx *ctx = (VoltStorageCtx *)storageCtx;
  VoltLibCtx *libCtx = (VoltLibCtx *)(ctx->voltObject.libraryCtx);
  VoltIdentityObject *idObj = (VoltIdentityObject *)reference;
  VoltKeyObject *keyObj = (VoltKeyObject *)entry;
  VoltFileCtx *fileCtx = (VoltFileCtx *)0;
  VoltFileHandle fileHandle = (VoltFileHandle)0;
  VoltDefaultStorageCtx *defStorageCtx;
  unsigned char *contents = (unsigned char *)0;
  unsigned char *fileName = (unsigned char *)0;  
  unsigned char *password = (unsigned char *)0;
  VOLT_DECLARE_FNCT_LINE (fnctLine)
  VOLT_DECLARE_ERROR_TYPE (errorType)

  /* If this function was called by the VtStorageImplNull 
   * simply return VT_ERROR_NO_STORAGE_PROVIDER_LOADED
   */
  if (ctx->providerNum == -2)
    return VT_ERROR_NO_STORAGE_PROVIDER_LOADED;

  /* Get the File Ctx
  */
  defStorageCtx = (VoltDefaultStorageCtx *)ctx->localStorageCtx;
  fileCtx = (VoltFileCtx *)defStorageCtx->fCtx;
  do
  {
    /* We need the identity encoded.
     */
    VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_INVALID_STORAGE_REF;
    if (idObj->encoding.data == (unsigned char *)0)
      break;    

    /* The data to store will be the DER of the private key which
    *  will be wrapped inside a PrivateKeyInfo object.
    *  First, how big does the buffer need to be?
    */
    VOLT_SET_ERROR_TYPE (errorType, 0)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VtDerEncodeKey (
      (VtLibCtx)libCtx, VtDerCoderBFType1IBEPrivateKey , (Pointer)keyObj,
      (unsigned char *)0, 0, &contentsLen);
    if (status == 0)
      status = VT_ERROR_INVALID_KEY_OBJ;
    if (status != VT_ERROR_BUFFER_TOO_SMALL)
      break;

    /* Allocate the space.
    */
    VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_MEMORY;
    contents = (unsigned char *)Z2Malloc (contentsLen, VOLT_MEMORY_SENSITIVE);
    if (contents == (unsigned char *)0)
      break;

    /* Encode into the buffer.
    */
    VOLT_SET_ERROR_TYPE (errorType, 0)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VtDerEncodeKey (
      (VtLibCtx)libCtx, VtDerCoderBFType1IBEPrivateKey , (Pointer)keyObj,
      contents, contentsLen, &contentsLen);
    if (status != 0)
      break;
    
    /* Get the file name to store the encoded private key info.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VoltGetFileNameFromValueAlloc (
      ctx, (unsigned char *)0, 0, idObj->encoding.data, idObj->encoding.len,
      VOLT_FILE_NAME_VALUE_TYPE_IBE_PRI_KEY, &fileName, &fileNameLen);
    if (status != 0)
      break;

    /* Make sure the directories exist.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = fileCtx->CtxCreateDirectories(fileCtx, fileName);
    if (status != 0)
      break;

    /* Open this file to write. If it exists, destory the contents.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = fileCtx->CtxOpenFile(
      fileCtx, &fileHandle, fileName, VOLT_FILE_MODE_READ_OVERWRITE, 0600);
    if (status != 0)
      break;

    if (defStorageCtx->GetExtraPassword != (VGetExtraPassword)0)
    {
      VOLT_SET_FNCT_LINE (fnctLine)
      status = defStorageCtx->GetExtraPassword (ctx, &password, &passwordLen);
      if (status != 0)
        break;
    }

    /* Store the encoding.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = mIcStoreData (
      ctx, contents, contentsLen, password, passwordLen, fileCtx, fileHandle);
    if (status != 0)
      break;

    VOLT_SET_FNCT_LINE (fnctLine)
    status = VoltAddIdentityToIdList (storageCtx, reference); 

  } while (0);

  if (password != (unsigned char *)0)
    defStorageCtx->ReleaseExtraPassword (ctx, &password, &passwordLen);
  if (fileHandle != (VoltFileHandle)0)
    fileCtx->CtxCloseFile(fileCtx, &fileHandle);
  if (contents != (unsigned char *)0 )
    Z2Free (contents);
  if (fileName != (unsigned char *)0)
    Z2Free (fileName);

  if (status == 0)
    return 0;

  /* In case of error log it and return
  */
  VOLT_LOG_ERROR (
    (VtLibCtx)libCtx, status, errorType, fnctLine,
    "VoltDefaultStoreIBEPrivateKey", (char *)0)

  return (status);
}

int VoltDefaultStorePrivateSigningKey (
   VtStorageCtx storageCtx,
   VtIdentityObject reference,
   VtKeyObject keyObj
   )
{
  int status;
  unsigned int fileNameLen, contentsLen, passwordLen;
  VoltStorageCtx *ctx = (VoltStorageCtx *)storageCtx;
  VoltLibCtx *libCtx = (VoltLibCtx *)(ctx->voltObject.libraryCtx);
  VoltIdentityObject *idObj = (VoltIdentityObject *)reference;
  VoltFileCtx *fileCtx = (VoltFileCtx *)0;
  VoltFileHandle fileHandle = (VoltFileHandle)0;
  VoltDefaultStorageCtx *defStorageCtx;
  unsigned char *fileName = (unsigned char *)0;
  unsigned char *password = (unsigned char *)0;
  unsigned char *contents = (unsigned char *)0;
  VOLT_DECLARE_FNCT_LINE (fnctLine)
  VOLT_DECLARE_ERROR_TYPE (errorType)


  /* If this function was called by the VtStorageImplNull 
   * simply return Vt_ERROR_NO_STORAGE_PROVIDER_LOADED
   */
  if (ctx->providerNum == -2)
    return VT_ERROR_NO_STORAGE_PROVIDER_LOADED;

  /* This implementation stores DSA private keys only.
   */
  /* Get the File Ctx
  */
  defStorageCtx = (VoltDefaultStorageCtx *)ctx->localStorageCtx;
  fileCtx = (VoltFileCtx *)defStorageCtx->fCtx;
  do
  {
    /* We need the identity encoded.
     */
    VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_INVALID_STORAGE_REF;
    if (idObj->encoding.data == (unsigned char *)0)
      break;

    /* The data to store will be the DER of the private key.
     * Note that this implementation only deals with DSA keys.
     * First, how big does the buffer need to be?
     */
    VOLT_SET_ERROR_TYPE (errorType, 0)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VtDerEncodeKey (
      (VtLibCtx)libCtx, VtDerCoderDSAPrivateKey, (Pointer)keyObj,
      (unsigned char *)0, 0, &contentsLen);
    if (status == 0)
      status = VT_ERROR_INVALID_KEY_OBJ;
    if (status != VT_ERROR_BUFFER_TOO_SMALL)
      break;

    /* Allocate the space.
     */
    VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_MEMORY;
    contents = (unsigned char *)Z2Malloc (contentsLen, VOLT_MEMORY_SENSITIVE);
    if (contents == (unsigned char *)0)
      break;

    /* Encode into the buffer.
     */
    VOLT_SET_ERROR_TYPE (errorType, 0)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VtDerEncodeKey (
      (VtLibCtx)libCtx, VtDerCoderDSAPrivateKey, (Pointer)keyObj,
      contents, contentsLen, &contentsLen);
    if (status != 0)
      break;

    /* Get the file name.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VoltGetFileNameFromValueAlloc (
      ctx, (unsigned char *)0, 0, idObj->encoding.data, idObj->encoding.len,
      VOLT_FILE_NAME_VALUE_TYPE_SIGN_PRI, &fileName, &fileNameLen);
    if (status != 0)
      break;

    /* Make sure the directories exist.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = fileCtx->CtxCreateDirectories (fileCtx, fileName);
    if (status != 0)
      break;

    /* Open this file to write. If it exists, destory the contents.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = fileCtx->CtxOpenFile (
      fileCtx, &fileHandle, fileName, VOLT_FILE_MODE_READ_OVERWRITE, 0600);
    if (status != 0)
      break;

    if (defStorageCtx->GetExtraPassword != (VGetExtraPassword)0)
    {
      VOLT_SET_FNCT_LINE (fnctLine)
      status = defStorageCtx->GetExtraPassword (ctx, &password, &passwordLen);
      if (status != 0)
        break;
    }

    /* Store the encoding.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = mIcStoreData (
      ctx, contents, contentsLen, password, passwordLen, fileCtx, fileHandle);

  } while (0);

  if (password != (unsigned char *)0)
    defStorageCtx->ReleaseExtraPassword (ctx, &password, &passwordLen);
  if (fileHandle != (VoltFileHandle)0)
    fileCtx->CtxCloseFile (fileCtx, &fileHandle);
  if (contents != (unsigned char *)0)
    Z2Free (contents);
  if (fileName != (unsigned char *)0)
    Z2Free (fileName);

  if (status == 0)
    return 0;

  /* Log the error and return 
  */
  VOLT_LOG_ERROR (
    (VtLibCtx)libCtx, status, errorType, fnctLine,
    "VoltDefaultStorePrivateSigningKey", (char *)0)

  return (status);
}

int VoltDefaultStorePublicSigningCert (
   VtStorageCtx storageCtx,
   VtIdentityObject reference,
   VtItem *cert
   )
{
  int status;
  unsigned int fileNameLen;
  VoltStorageCtx *ctx = (VoltStorageCtx *)storageCtx;
  VoltLibCtx *libCtx = (VoltLibCtx *)(ctx->voltObject.libraryCtx);
  VoltIdentityObject *idObj = (VoltIdentityObject *)reference;
  VoltFileCtx *fileCtx = (VoltFileCtx *)0;
  VoltFileHandle fileHandle = (VoltFileHandle)0;
  VoltDefaultStorageCtx *defStorageCtx;
  unsigned char *fileName = (unsigned char *)0;
  VOLT_DECLARE_FNCT_LINE (fnctLine)
  VOLT_DECLARE_ERROR_TYPE (errorType)

  /* If this function was called by the VtStorageImplNull 
   * simply return Vt_ERROR_NO_STORAGE_PROVIDER_LOADED
   */
  if (ctx->providerNum == -2)
    return VT_ERROR_NO_STORAGE_PROVIDER_LOADED;

  /* Get the File Ctx
  */
  defStorageCtx = (VoltDefaultStorageCtx *)ctx->localStorageCtx;
  fileCtx = (VoltFileCtx *)defStorageCtx->fCtx;
  do
  {
    /* We need the identity encoded.
     */
    VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_INVALID_STORAGE_REF;
    if (idObj->encoding.data == (unsigned char *)0)
      break;

    /* Get the file name.
     */
    VOLT_SET_ERROR_TYPE (errorType, 0)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VoltGetFileNameFromValueAlloc (
      ctx, (unsigned char *)0, 0, idObj->encoding.data, idObj->encoding.len,
      VOLT_FILE_NAME_VALUE_TYPE_CERT, &fileName, &fileNameLen);
    if (status != 0)
      break;

    /* Make sure the directories exist.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = fileCtx->CtxCreateDirectories (fileCtx, fileName);
    if (status != 0)
      break;

    /* Open this file to write. If it exists, destory the contents.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = fileCtx->CtxOpenFile (
      fileCtx, &fileHandle, fileName, VOLT_FILE_MODE_READ_OVERWRITE, 0600);
    if (status != 0)
      break;

    /* Signing certs are encrypted with default credentials
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = mIcStoreData (
      ctx, cert->data, cert->len, (unsigned char *)0, 0, fileCtx, fileHandle);   

  } while (0);

  if (fileHandle != (VoltFileHandle)0)
    fileCtx->CtxCloseFile (fileCtx, &fileHandle);
  if (fileName != (unsigned char *)0)
    Z2Free (fileName);

  if (status == 0)
    return 0;

  VOLT_LOG_ERROR (
    (VtLibCtx)libCtx, status, errorType, fnctLine,
    "VoltDefaultStorePublicSigningCert", (char *)0)

  return (status);
}

int VoltDefaultGetDistrictParameterCount (
   VtStorageCtx storageCtx,
   VtDistrictObject reference,
   unsigned int *count
   )
{
  int status;
  VoltStorageCtx *ctx = (VoltStorageCtx *)storageCtx;
  VoltLibCtx *libCtx = (VoltLibCtx *)(ctx->voltObject.libraryCtx);
  VtDistrictObject tempObject = (VtDistrictObject)0;
  VoltDistrictObject *obj = (VoltDistrictObject *)reference;
  VtFileNameList *nameList = (VtFileNameList *)0;
  unsigned char *qualName, *unqualName;
  VtTime timeOfStore;
  VOLT_DECLARE_FNCT_LINE (fnctLine)
  VOLT_DECLARE_ERROR_TYPE (errorType)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品自拍动漫在线| 日韩免费视频一区| 国产精品免费视频观看| 国产成人av电影在线观看| 久久嫩草精品久久久精品| 国产精品1024久久| 国产精品视频一二三| 99精品一区二区三区| 亚洲制服丝袜一区| 欧美色倩网站大全免费| 日韩中文字幕亚洲一区二区va在线| 91精品免费观看| 国产一区二区精品久久| 1000精品久久久久久久久| 欧美专区亚洲专区| 久久国产三级精品| 国产精品丝袜在线| 欧美日韩一级黄| 国产精品一品视频| 亚洲二区视频在线| 久久无码av三级| 色婷婷av一区二区三区软件| 成人网男人的天堂| 一区二区三区四区不卡在线 | 一区二区免费在线播放| 欧美一二三在线| 成人性生交大片免费看视频在线 | 国产精品一区二区三区四区| 国产精品国产自产拍在线| 在线观看不卡一区| 免费高清视频精品| 有坂深雪av一区二区精品| 精品国产一区二区在线观看| 99re在线精品| 久久国产麻豆精品| 亚洲小说春色综合另类电影| 精品国产精品网麻豆系列 | 成人av小说网| 男人的j进女人的j一区| 亚洲欧美影音先锋| 欧美刺激午夜性久久久久久久| 91在线国产福利| 激情综合亚洲精品| 亚洲一区二区三区四区五区中文| 久久精品综合网| 日韩一区二区影院| 91久久线看在观草草青青| 国产盗摄一区二区| 久久99蜜桃精品| 亚洲国产成人91porn| 日韩理论电影院| 国产亚洲精品7777| 欧美电视剧在线观看完整版| 欧美久久久久久蜜桃| 色婷婷久久一区二区三区麻豆| 国产酒店精品激情| 狂野欧美性猛交blacked| 亚洲成av人在线观看| 亚洲欧美日韩电影| 亚洲欧美在线aaa| 中文字幕免费观看一区| 久久精品一区四区| 日韩精品中文字幕一区二区三区| 欧美日韩午夜在线视频| 色8久久人人97超碰香蕉987| caoporen国产精品视频| 国产精品99久久久久久久vr| 卡一卡二国产精品| 奇米综合一区二区三区精品视频| 日日摸夜夜添夜夜添亚洲女人| 亚洲与欧洲av电影| 亚洲在线免费播放| 亚洲1区2区3区4区| 午夜不卡av在线| 天堂影院一区二区| 蜜臀va亚洲va欧美va天堂| 日韩国产精品大片| 日本美女一区二区| 麻豆精品视频在线观看视频| 美脚の诱脚舐め脚责91| 精品亚洲成av人在线观看| 另类人妖一区二区av| 久久精品国产亚洲aⅴ| 久久精品久久99精品久久| 免费高清在线一区| 国产精品66部| 白白色 亚洲乱淫| 97精品久久久久中文字幕 | 麻豆成人av在线| 久久成人麻豆午夜电影| 国产在线播精品第三| 国产福利91精品| 92国产精品观看| 欧美日韩一区成人| 欧美成人女星排行榜| 久久婷婷国产综合国色天香 | 精品剧情v国产在线观看在线| 精品日韩一区二区三区| 久久久电影一区二区三区| 国产精品毛片a∨一区二区三区| 亚洲同性同志一二三专区| 夜夜精品视频一区二区| 蜜臀精品久久久久久蜜臀| 国产精品中文字幕欧美| 91污在线观看| 91精品国产综合久久福利| 久久麻豆一区二区| 亚洲欧美另类在线| 免费成人在线网站| 91在线观看视频| 欧美一区二区三区免费| 国产午夜精品久久久久久久| 日韩理论在线观看| 欧美aaa在线| 99精品1区2区| 日韩精品中文字幕在线不卡尤物 | 一区二区三区**美女毛片| 欧美a级一区二区| 99久久国产综合精品麻豆| 欧美一区二区三区喷汁尤物| 国产精品久久夜| 美女网站色91| 色婷婷一区二区三区四区| 精品美女在线播放| 亚洲高清三级视频| 国产mv日韩mv欧美| 欧美一区二区三区免费| 亚洲三级小视频| 国内精品嫩模私拍在线| 欧美日韩在线观看一区二区 | 亚洲精品免费在线观看| 国产综合久久久久久鬼色| 欧美亚洲国产bt| 国产精品久久久一区麻豆最新章节| 日本三级亚洲精品| 欧美在线综合视频| 成人欧美一区二区三区| 国产尤物一区二区| 欧美丰满少妇xxxxx高潮对白 | 色哟哟一区二区三区| 久久久国产午夜精品| 精品综合久久久久久8888| 欧美午夜电影一区| 日韩理论在线观看| 成人动漫一区二区在线| 精品成人a区在线观看| 午夜久久久久久电影| 欧美熟乱第一页| 亚洲精品中文字幕乱码三区| 丰满少妇在线播放bd日韩电影| 欧美电影免费提供在线观看| 偷拍亚洲欧洲综合| 欧美日韩一二区| 午夜激情综合网| 欧美亚男人的天堂| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲不卡一区二区三区| 色欧美88888久久久久久影院| 亚洲国产精品ⅴa在线观看| 蓝色福利精品导航| 精品蜜桃在线看| 极品少妇xxxx精品少妇偷拍 | 国产精品你懂的在线| 国产乱国产乱300精品| 精品国产一二三| 精品在线视频一区| 精品奇米国产一区二区三区| 国产成人免费高清| 国产亚洲成av人在线观看导航| 国产剧情av麻豆香蕉精品| 久久婷婷国产综合国色天香| 国产精品 日产精品 欧美精品| 久久精品一区二区三区不卡| 高清不卡在线观看| 国产精品无码永久免费888| 成人a级免费电影| 亚洲卡通欧美制服中文| 欧美午夜一区二区三区 | 亚洲高清免费在线| 91超碰这里只有精品国产| 青青草97国产精品免费观看| 精品福利一区二区三区免费视频| 国产精品夜夜嗨| 一区二区中文视频| 欧美在线不卡一区| 蜜臀久久99精品久久久画质超高清| 欧美精品一区二区三区在线播放 | 2023国产精品视频| 国产大陆a不卡| 综合久久国产九一剧情麻豆| 欧美性生活久久| 青青草成人在线观看| 国产色婷婷亚洲99精品小说| 成人91在线观看| 亚洲成a天堂v人片| 久久综合九色综合欧美98| 成人av第一页| 日本不卡在线视频| 中文字幕不卡在线播放| 欧美在线你懂的|