Fix for 233493 . Corrections based on Wan-Teh's feedback.
This commit is contained in:
Родитель
f0399f13b2
Коммит
21dcb34f6a
|
@ -54,20 +54,9 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#if defined(WIN32) || defined(OS2)
|
|
||||||
#include "io.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "secutil.h"
|
#include "secutil.h"
|
||||||
|
|
||||||
#if defined(XP_UNIX)
|
|
||||||
#include <unistd.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "nspr.h"
|
#include "nspr.h"
|
||||||
#include "prtypes.h"
|
|
||||||
#include "prtime.h"
|
|
||||||
#include "prlong.h"
|
|
||||||
|
|
||||||
#include "pk11func.h"
|
#include "pk11func.h"
|
||||||
#include "secasn1.h"
|
#include "secasn1.h"
|
||||||
|
@ -76,9 +65,6 @@
|
||||||
#include "secoid.h"
|
#include "secoid.h"
|
||||||
#include "certdb.h"
|
#include "certdb.h"
|
||||||
#include "nss.h"
|
#include "nss.h"
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
|
|
||||||
typedef struct _KeyTypes {
|
typedef struct _KeyTypes {
|
||||||
CK_KEY_TYPE keyType;
|
CK_KEY_TYPE keyType;
|
||||||
|
@ -123,49 +109,13 @@ GetLen(PRFileDesc* fd)
|
||||||
{
|
{
|
||||||
PRFileInfo info;
|
PRFileInfo info;
|
||||||
|
|
||||||
if (PR_SUCCESS != PR_GetOpenFileInfo(fd, &info))
|
if (PR_SUCCESS != PR_GetOpenFileInfo(fd, &info)) {
|
||||||
{
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return info.size;
|
return info.size;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef O_BINARY
|
|
||||||
#define O_BINARY 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void PrintError(void)
|
|
||||||
{
|
|
||||||
char* errortext = NULL;
|
|
||||||
PRInt32 errorlen = 0;
|
|
||||||
|
|
||||||
errorlen = PR_GetErrorTextLength();
|
|
||||||
if (errorlen)
|
|
||||||
{
|
|
||||||
errortext = PORT_ZAlloc(errorlen);
|
|
||||||
errorlen = PR_GetErrorText(errortext);
|
|
||||||
}
|
|
||||||
if (errorlen)
|
|
||||||
{
|
|
||||||
PR_fprintf(PR_STDERR, "%s\n", errortext);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
PRErrorCode prError = 0;
|
|
||||||
PRInt32 osError = 0;
|
|
||||||
|
|
||||||
prError = PR_GetError();
|
|
||||||
osError = PR_GetOSError();
|
|
||||||
PR_fprintf(PR_STDERR, "NSPR error %d , OS error = %d.\n", prError,
|
|
||||||
osError);
|
|
||||||
}
|
|
||||||
if (errortext)
|
|
||||||
{
|
|
||||||
PORT_Free(errortext);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
ReadBuf(char *inFile, SECItem *item)
|
ReadBuf(char *inFile, SECItem *item)
|
||||||
{
|
{
|
||||||
|
@ -173,13 +123,13 @@ ReadBuf(char *inFile, SECItem *item)
|
||||||
int ret;
|
int ret;
|
||||||
PRFileDesc* fd = PR_Open(inFile, PR_RDONLY, 0);
|
PRFileDesc* fd = PR_Open(inFile, PR_RDONLY, 0);
|
||||||
if (NULL == fd) {
|
if (NULL == fd) {
|
||||||
PrintError();
|
SECU_PrintError("Error", "PR_Open failed");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
len = GetLen(fd);
|
len = GetLen(fd);
|
||||||
if (len < 0) {
|
if (len < 0) {
|
||||||
PrintError();
|
SECU_PrintError("Error", "PR_GetOpenFileInfo failed");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
item->data = (unsigned char *)PORT_Alloc(len);
|
item->data = (unsigned char *)PORT_Alloc(len);
|
||||||
|
@ -190,9 +140,9 @@ ReadBuf(char *inFile, SECItem *item)
|
||||||
|
|
||||||
ret = PR_Read(fd,item->data,item->len);
|
ret = PR_Read(fd,item->data,item->len);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
SECU_PrintError("Error", "PR_Read failed");
|
||||||
PORT_Free(item->data);
|
PORT_Free(item->data);
|
||||||
item->data = NULL;
|
item->data = NULL;
|
||||||
PrintError();
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
PR_Close(fd);
|
PR_Close(fd);
|
||||||
|
@ -206,13 +156,13 @@ WriteBuf(char *inFile, SECItem *item)
|
||||||
int ret;
|
int ret;
|
||||||
PRFileDesc* fd = PR_Open(inFile, PR_WRONLY|PR_CREATE_FILE, 0x200);
|
PRFileDesc* fd = PR_Open(inFile, PR_WRONLY|PR_CREATE_FILE, 0x200);
|
||||||
if (NULL == fd) {
|
if (NULL == fd) {
|
||||||
PrintError();
|
SECU_PrintError("Error", "PR_Open failed");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = PR_Write(fd,item->data,item->len);
|
ret = PR_Write(fd,item->data,item->len);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
PrintError();
|
SECU_PrintError("Error", "PR_Write failed");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
PR_Close(fd);
|
PR_Close(fd);
|
||||||
|
@ -1044,7 +994,7 @@ main(int argc, char **argv)
|
||||||
goto shutdown;
|
goto shutdown;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* WriteBuf outputs it's own error using PrintError */
|
/* WriteBuf outputs it's own error using SECU_PrintError */
|
||||||
ret = WriteBuf(symKeyUtil.options[opt_KeyFile].arg, &data);
|
ret = WriteBuf(symKeyUtil.options[opt_KeyFile].arg, &data);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
goto shutdown;
|
goto shutdown;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче