Skip to content

Commit

Permalink
v5.2.41762.1027
Browse files Browse the repository at this point in the history
  • Loading branch information
carsonzoom committed Oct 28, 2020
1 parent fc16132 commit 620564c
Show file tree
Hide file tree
Showing 143 changed files with 333 additions and 217 deletions.
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,17 @@ HMACSHA256(
```
You do not need to secret base64 encoded your signature. Once the JWT token is generated, please do not reveal it or publish it. **It is highly recommended to handle your SDK key and secret and generate JWT in a backend server to be consumed by your application. Do not generate JWT in a production application.**

## 2020-10-26 @ v5.2.41762.1027

## Changed & Fixed
* [Mac] Fixed an issue that the virtual background does not work after re-signing the SDK libraries.
* SDK will verify the signature of all libraries. When the SDK libraries have been resigned, please call the interface `setTeamIdentifier` to set the organization unit of the signature before intializing in the app.
```
setTeamIdentifier(“the ou of certificate”);
```

* [Mac] Fixed an issue that the keychain popup dialog contains 'Zoom', the new keychain pops up will use the app's name instead.

## 2020-10-09 @ v5.2.41735.0929

## Added
Expand Down
16 changes: 11 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,17 @@
- [Acknowledgments](#acknowledgments)

## Latest SDK News
1. Starting from 5.2.41735.0929, building the Electron SDK on Windows requires building with Visual Studio 2019.
2. Starting from Client SDK 5.0, if you are using tokens to start a meeting, you will only need to retrieve ZAK from Zoom API. The user token has been deprecated.
3. To follow with Zoom client's recent changes, Zoom SDK has temporary remove the "Unmute All" interface in Client SDK 5.0.
4. To align with Zoom’s [recent announcement](https://blog.zoom.us/wordpress/2020/04/22/zoom-hits-milestone-on-90-day-security-plan-releases-zoom-5-0/) pertaining to our security initiative, Zoom Client SDKs have added **AES 256-bit GCM encryption** support, which provides more protection for meeting data and greater resistance to tampering. **The system-wide account enablement of AES 256-bit GCM encryption will take place on June 01.** You are **strongly recommended** to start the required upgrade to this latest version 4.6.21666.0428 at your earliest convenience. Please note that any Client SDK versions below 4.6.21666.0428 will **no longer be operational** from June 01.
5. We have merged and unified the `windows-electron-sdk` and the `mac-electron-sdk` into one single SDK.
1. On macOS, SDK will verify the signature of all libraries. When the SDK libraries have been resigned, please call the interface `setTeamIdentifier` to set the organization unit of the signature before initializing in the app. For example:
```
setTeamIdentifier(“the ou of certificate”);
```
Otherwise, some features, such as virtual background will not work after resigning the app.

2. Starting from 5.2.41735.0929, building the Electron SDK on Windows requires building with Visual Studio 2019.
3. Starting from Client SDK 5.0, if you are using tokens to start a meeting, you will only need to retrieve ZAK from Zoom API. The user token has been deprecated.
4. To follow with Zoom client's recent changes, Zoom SDK has temporary remove the "Unmute All" interface in Client SDK 5.0.
5. To align with Zoom’s [recent announcement](https://blog.zoom.us/wordpress/2020/04/22/zoom-hits-milestone-on-90-day-security-plan-releases-zoom-5-0/) pertaining to our security initiative, Zoom Client SDKs have added **AES 256-bit GCM encryption** support, which provides more protection for meeting data and greater resistance to tampering. **The system-wide account enablement of AES 256-bit GCM encryption will take place on June 01.** You are **strongly recommended** to start the required upgrade to this latest version 4.6.21666.0428 at your earliest convenience. Please note that any Client SDK versions below 4.6.21666.0428 will **no longer be operational** from June 01.
6. We have merged and unified the `windows-electron-sdk` and the `mac-electron-sdk` into one single SDK.
The new Electron SDK has a brand new structure, consist of the node-interface and the node-core:

* Node-interface: contains all the implementations by V8 engine
Expand Down
6 changes: 6 additions & 0 deletions demo/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -559,6 +559,12 @@ let functionObj = {
domainWindow = null;
}
},
setTeamIdentifier: function (identifier) {
const opts = {
identifier: identifier
}
var ret = zoomsdk.SetTeamIdentifier(opts);
},
setDomain: function (domain, enable_log) {
const opts = {
path: '', // win require absolute path, mac require ''
Expand Down
10 changes: 10 additions & 0 deletions demo/node_modules/clone/clone.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

63 changes: 40 additions & 23 deletions demo/pages/domain.html
Original file line number Diff line number Diff line change
@@ -1,35 +1,20 @@
<html>
<head>
<link rel="stylesheet" type="text/css" href="./css/style.css" />
<script>
const {ipcRenderer} = require('electron');

function senddomainmsg(domain, enable_log){
ipcRenderer.send('asynchronous-message', 'setDomain', domain, enable_log);
}

function doinit(){
let domain = document.getElementById("domain").value.replace(/^\s+|\s+$/g, '');
let enable_log = document.getElementById("enable_log").value.replace(/^\s+|\s+$/g, '');
let pattern = /((ht|f)tps?:)\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/g;
let ret = pattern.test(domain);
if (ret == true) {
document.getElementById("tip").style.cssText="display: none;";
senddomainmsg(domain, enable_log == 'true' ? true : false);
} else {
document.getElementById("tip").style.cssText="display: block;";
}
}
</script>

</head>

<title>Zoom Electron Demo</title>
<body>
<div class="center">
<img class="logo" src="./images/fte_Logo.png" />
</div>
<br/><br />
</div>
<br/><br />
<div id="identifierContent">
<div class="center"><input type="text" name="identifier" placeholder="input identifier" id="identifier" /></div>
<br/>
<div class="center"><button type="button" onclick="setTeamIdentifier()">Set Team Identifier</button></div>
<br/><br/>
</div>
<div class="center"><input type="text" name="domain" placeholder="input domain" size="50" id="domain" value="https://www.zoom.us"/></div>
<div class="tip" id="tip">
your input domain is incorrect
Expand All @@ -44,4 +29,36 @@
<br/>
<div class="center"><button type="button" onclick="doinit()">Start Demo</button></div>
</body>
<script>
const {ipcRenderer} = require('electron');
const {platform} = require('os');
const identifierContent = document.querySelector("#identifierContent")
if (platform() == "darwin") {
identifierContent.style = "display: block"
} else {
identifierContent.style = "display: none"
}

function setTeamIdentifier() {
let identifier = document.getElementById("identifier").value.replace(/^\s+|\s+$/g, '');
ipcRenderer.send('asynchronous-message', 'setTeamIdentifier', identifier);
}

function senddomainmsg(domain, enable_log){
ipcRenderer.send('asynchronous-message', 'setDomain', domain, enable_log);
}

function doinit(){
let domain = document.getElementById("domain").value.replace(/^\s+|\s+$/g, '');
let enable_log = document.getElementById("enable_log").value.replace(/^\s+|\s+$/g, '');
let pattern = /((ht|f)tps?:)\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/g;
let ret = pattern.test(domain);
if (ret == true) {
document.getElementById("tip").style.cssText="display: none;";
senddomainmsg(domain, enable_log == 'true' ? true : false);
} else {
document.getElementById("tip").style.cssText="display: block;";
}
}
</script>
</html>
9 changes: 9 additions & 0 deletions lib/node_add_on/mac/zoom_native_sdk_wrap_core.mm
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,15 @@
return ZNSDKERR_SUCCESS;
}

//before initsdk called
void ZNativeSDKWrap::SetTeamIdentifier(ZoomSTRING identifier)
{
if (!identifier.empty()) {
NSString *identifierStr = [NSString stringWithUTF8String:identifier.c_str()];
[[ZoomSDK sharedSDK] setTeamIdentifier:identifierStr];
}
}

ZNSDKError ZNativeSDKWrap::CleanUPSDK()
{
return ZNSDKERR_SUCCESS;
Expand Down
4 changes: 4 additions & 0 deletions lib/node_add_on/win/zoom_native_sdk_wrap_core.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -143,3 +143,7 @@ ZNativeRawAPIWrap& ZNativeSDKWrap::GetRawAPIWrap()
{
return _z_raw_api_wrap;
}
void ZNativeSDKWrap::SetTeamIdentifier(ZoomSTRING identifier)
{
//only for Mac
}
1 change: 1 addition & 0 deletions lib/node_add_on/zoom_native_sdk_wrap_core.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class ZOOM_HIDE_SYMBOL ZNativeSDKWrap
ZPremeetingServiceWrap& GetPremeetingServiecWrap();
ZCustomizedResourceWrap& GetCustomizedResourceWrap();
ZNativeRawAPIWrap& GetRawAPIWrap();
void SetTeamIdentifier(ZoomSTRING identifier);
private:
ZAuthServiceWrap _z_auth_service_wrap;
ZMeetingServiceWrap _z_meeting_service_wrap;
Expand Down
24 changes: 24 additions & 0 deletions lib/node_add_on/zoom_node_addon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,30 @@ void ZoomNodeWrap::GetSDKSMSHelperObj(const v8::FunctionCallbackInfo<v8::Value>&
void ZoomNodeWrap::GetRawdataAPIWrap(const v8::FunctionCallbackInfo<v8::Value>& args) {
ZoomNodeRawApiCtrlWrap::NewInstance(args);
}
void ZoomNodeWrap::SetTeamIdentifier(const v8::FunctionCallbackInfo<v8::Value>& args) {

v8::Isolate* isolate = args.GetIsolate();
if (args.Length() < 1) {
isolate->ThrowException(v8::Exception::TypeError(
v8::String::NewFromUtf8(isolate, "Wrong number of arguments", v8::NewStringType::kInternalized).ToLocalChecked()));
return;
}

if (!args[0]->IsString())
{
isolate->ThrowException(v8::Exception::TypeError(
v8::String::NewFromUtf8(isolate, "Wrong arguments", v8::NewStringType::kInternalized).ToLocalChecked()));
return;
}

ZoomSTRING zn_indentifier;
zoom_v8toc(args[0].As<v8::String>(), zn_indentifier);

_g_native_wrap.SetTeamIdentifier(zn_indentifier);
ZNSDKError err = ZNSDKERR_SUCCESS;
v8::Local<v8::Integer> bret = v8::Integer::New(isolate, (int32_t)err);
args.GetReturnValue().Set(bret);
}
////////////////////////////////////////////////////////////////////////////

ZoomNodeAuthWrap::ZoomNodeAuthWrap()
Expand Down
4 changes: 4 additions & 0 deletions lib/node_add_on/zoom_node_addon.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,8 @@ class ZOOM_NODE_HIDE ZoomNodeWrap : public ZoomWrapObject<ZoomNodeWrap >

static void GetRawdataAPIWrap(const v8::FunctionCallbackInfo<v8::Value>& args);

static void SetTeamIdentifier(const v8::FunctionCallbackInfo<v8::Value>& args);

static v8::Persistent<v8::Function> constructor;
};
template<>
Expand All @@ -162,6 +164,8 @@ static void InitClassAttribute<ZoomNodeWrap >(const v8::Local<v8::FunctionTempla
NODE_SET_PROTOTYPE_METHOD(tpl, "GetSDKSMSHelperObj", ZoomNodeWrap::GetSDKSMSHelperObj);

NODE_SET_PROTOTYPE_METHOD(tpl, "GetRawdataAPIWrap", ZoomNodeWrap::GetRawdataAPIWrap);

NODE_SET_PROTOTYPE_METHOD(tpl, "SetTeamIdentifier", ZoomNodeWrap::SetTeamIdentifier);
}
template<>
static v8::Persistent<v8::Function>* GetConstructor<ZoomNodeWrap >() {
Expand Down
16 changes: 16 additions & 0 deletions lib/zoom_sdk.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,22 @@ const ZoomSDK = (() => {

return {
// Public methods and variables
/**
* mode: Set Team Identifier
* @param {String} identifier
* @return {ZoomSDKError}
*/
SetTeamIdentifier: function (opts) {
if (addon) {
let clientOpts = opts || {};
let identifier = clientOpts.identifier;
if (!identifier) {
return ZoomSDKError.SDKERR_INVALID_PARAMETER;
}
return addon.SetTeamIdentifier(identifier);
}
return ZoomSDKError.SDKERR_UNINITIALIZE;
},
/**
* mode: Zoom SDK Init
* @param {String} path [Required] sdk.dll path on win os, todo: mac os.
Expand Down
Binary file not shown.
4 changes: 2 additions & 2 deletions sdk/mac/ZoomSDK/CptHost.app/Contents/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>5.2.41735.0929</string>
<string>5.2.41762.1027</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>5.2.41735.0929</string>
<string>5.2.41762.1027</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
Expand Down
Binary file modified sdk/mac/ZoomSDK/CptHost.app/Contents/MacOS/CptHost
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>5.2.41735.0929</string>
<string>5.2.41762.1027</string>
<key>CFBundleVersion</key>
<string>5.2.41735.0929</string>
<string>5.2.41762.1027</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.business</string>
<key>LSMinimumSystemVersion</key>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<dict>
<key>Resources/CptHost-Info.plist</key>
<data>
RiQbu6F+xW+ZXM3BXhXHoH8aAKA=
EkMoCvDih5I9ktPs/p/uG8wMoB8=
</data>
</dict>
<key>files2</key>
Expand All @@ -15,11 +15,11 @@
<dict>
<key>hash</key>
<data>
RiQbu6F+xW+ZXM3BXhXHoH8aAKA=
EkMoCvDih5I9ktPs/p/uG8wMoB8=
</data>
<key>hash2</key>
<data>
0LEFIoWLcdMIoT6PH1Dn+9UeT2eOALqpJJTYIRkVqgI=
nyZ4hY0m1Ek7pSZnP43aeLvkkm66nHTl5D6T42xgzuM=
</data>
</dict>
</dict>
Expand Down
4 changes: 2 additions & 2 deletions sdk/mac/ZoomSDK/SDK_Transcode.app/Contents/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>5.2.41735.0929</string>
<string>5.2.41762.1027</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>5.2.41735.0929</string>
<string>5.2.41762.1027</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
Expand Down
Binary file modified sdk/mac/ZoomSDK/SDK_Transcode.app/Contents/MacOS/SDK_Transcode
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>5.2.41735.0929</string>
<string>5.2.41762.1027</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>5.2.41735.0929</string>
<string>5.2.41762.1027</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
Expand Down
Binary file modified sdk/mac/ZoomSDK/ZCommonUI.framework/Versions/A/ZCommonUI
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<dict>
<key>Resources/Info.plist</key>
<data>
1vA2tOYVaESuVWttCJ3VknhPWpc=
9F8aM7kvaDW4JoV93VnnkSqbCzE=
</data>
<key>Resources/ZMDialogue.nib</key>
<data>
Expand Down Expand Up @@ -421,11 +421,11 @@
<dict>
<key>hash</key>
<data>
1vA2tOYVaESuVWttCJ3VknhPWpc=
9F8aM7kvaDW4JoV93VnnkSqbCzE=
</data>
<key>hash2</key>
<data>
xUgVhAGu8bfR56b/M/CPrjxWTFOBPIen9kSeGXx64G8=
ZP2MdVJv4ZfLOMWRHwCAKhzyyLlaXsMxirh64M5Vq/M=
</data>
</dict>
<key>Resources/ZMDialogue.nib</key>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,14 @@ typedef enum
* @note Call Api firstly before you call [[ZoomSDK sharedSDK]initSDK:NO/YES] in the App.
*/
- (ZoomSDKError)setSupportDarkModel:(BOOL)isSupport;

/**
* @brief Set identifier of team.
* @param identifier Subject.OU value of the signing certificate, zoom will verify the certificate before loading.
* @note After you re-sign the SDK, you should call this interface to set the identifier of signature. You should call the method before calling [[ZoomSDK sharedSDK]initSDK:NO/YES] in the App.
*/
- (void)setTeamIdentifier:(NSString*)identifier;

@end


Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>5.2.41735.0929</string>
<string>5.2.41762.1027</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>5.2.41735.0929</string>
<string>5.2.41762.1027</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
Expand Down
Binary file modified sdk/mac/ZoomSDK/ZoomSDK.framework/Versions/A/ZoomSDK
Binary file not shown.
Loading

0 comments on commit 620564c

Please sign in to comment.