From 0d3c276a5b9b5308fb3c50c32e2def93e442df77 Mon Sep 17 00:00:00 2001 From: Dongsun Lee Date: Thu, 27 Oct 2016 12:58:17 +0900 Subject: [PATCH] Add defense code for null input Change-Id: Id9c5563d3789853432b5d88bb54f4babbbaa3600 Signed-off-by: Dongsun Lee --- packaging/csapi-security.spec | 2 +- .../Tizen.Security.SecureRepository/Certificate.cs | 3 ++- .../Tizen.Security.SecureRepository/Key.cs | 5 +++-- .../Tizen.Security.SecureRepository/Pkcs12.cs | 11 ++++------- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/packaging/csapi-security.spec b/packaging/csapi-security.spec index 54cdb67..1891860 100644 --- a/packaging/csapi-security.spec +++ b/packaging/csapi-security.spec @@ -8,7 +8,7 @@ Name: csapi-security Summary: Tizen Security API for C# -Version: 1.0.1 +Version: 1.0.2 Release: 1 Group: Development/Libraries License: Apache-2.0 diff --git a/src/Tizen.Security.SecureRepository/Tizen.Security.SecureRepository/Certificate.cs b/src/Tizen.Security.SecureRepository/Tizen.Security.SecureRepository/Certificate.cs index 91236c1..0dfaae2 100755 --- a/src/Tizen.Security.SecureRepository/Tizen.Security.SecureRepository/Certificate.cs +++ b/src/Tizen.Security.SecureRepository/Tizen.Security.SecureRepository/Certificate.cs @@ -81,7 +81,8 @@ namespace Tizen.Security.SecureRepository internal CkmcCert ToCkmcCert() { - return new Interop.CkmcCert(new PinnedObject(Binary), Binary.Length, (int)Format); + byte[] bin = (Binary != null) ? Binary : new byte[0]; + return new Interop.CkmcCert(new PinnedObject(bin), bin.Length, (int)Format); } /// diff --git a/src/Tizen.Security.SecureRepository/Tizen.Security.SecureRepository/Key.cs b/src/Tizen.Security.SecureRepository/Tizen.Security.SecureRepository/Key.cs index c64b32b..615f2a9 100755 --- a/src/Tizen.Security.SecureRepository/Tizen.Security.SecureRepository/Key.cs +++ b/src/Tizen.Security.SecureRepository/Tizen.Security.SecureRepository/Key.cs @@ -76,8 +76,9 @@ namespace Tizen.Security.SecureRepository internal CkmcKey ToCkmcKey() { - return new Interop.CkmcKey(new PinnedObject(Binary), - Binary.Length, + byte[] bin = (Binary != null) ? Binary : new byte[0] ; + return new Interop.CkmcKey(new PinnedObject(bin), + bin.Length, (int)Type, new PinnedObject(BinaryPassword)); } diff --git a/src/Tizen.Security.SecureRepository/Tizen.Security.SecureRepository/Pkcs12.cs b/src/Tizen.Security.SecureRepository/Tizen.Security.SecureRepository/Pkcs12.cs index e682c65..cc5c52c 100755 --- a/src/Tizen.Security.SecureRepository/Tizen.Security.SecureRepository/Pkcs12.cs +++ b/src/Tizen.Security.SecureRepository/Tizen.Security.SecureRepository/Pkcs12.cs @@ -116,13 +116,10 @@ namespace Tizen.Security.SecureRepository internal CkmcPkcs12 ToCkmcPkcs12() { - Interop.CkmcKey ckmcKey = new Interop.CkmcKey(new PinnedObject(PrivateKey.Binary), - PrivateKey.Binary.Length, - (int)PrivateKey.Type, - new PinnedObject(PrivateKey.BinaryPassword)); - Interop.CkmcCert ckmcCert = new Interop.CkmcCert(new PinnedObject(Certificate.Binary), - Certificate.Binary.Length, - (int)Certificate.Format); + Interop.CkmcKey ckmcKey = (PrivateKey != null) ? + PrivateKey.ToCkmcKey() : new Interop.CkmcKey(IntPtr.Zero, 0, 0, IntPtr.Zero); + Interop.CkmcCert ckmcCert = (Certificate != null) ? + Certificate.ToCkmcCert() : new Interop.CkmcCert(IntPtr.Zero, 0, 0); SafeCertificateListHandle ckmcCaCerts = new SafeCertificateListHandle(CaChain); return new Interop.CkmcPkcs12(new PinnedObject(ckmcKey), -- 2.7.4